dangsn
2024-06-06 33321f5486fd586fda6fd3f46b7e71754fede28b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package com.vci.starter.web.wrapper;
 
/**
 * 上下级关系查询配置项
 * 1. 上级是当前对象对象里的某个属性,比如部门,上级部门是部门对象中的一个属性,使用parentFieldName
 * 2. 如果使用链接类型存储上下级的关系,比如设计结构EBOM,设置linkTypeFlag为true,设置linkTypeName为链接类型的英文名称;默认传递fOid作为查询条件
 * 3. 如果是to端的主键来查询from端的信息,在第2条的基础上,设置queryFromToFlag为true
 * 4. 如果为链接类型,只是查询某个对象的所有的版本关联的to端数据,则在第2条的基础上,不传递fOid,改为传递fNameOid;
 * 5. 如果为链接类型,只是查询某个对象的某个版本的所有版次关联的to端数据,则在第2条的基础上,不传递fOid,改为传递fRevisionOid;
 * 6. 如果为链接类型,则链接类型的from端有多个业务类型,且业务类型的oid可能重复时,需要传递fBtmName属性
 * @author weidy
 * @date 2020-07-20
 */
public class VciParentQueryOption {
 
    /**
     * 上级属性的名称
     */
    private String parentFieldName;
 
    /**
     * 链接类型存储关系
     */
    private boolean linkTypeFlag;
 
    /**
     * 链接类型名称
     */
    private String linkTypeName;
 
    /**
     * from端主键
     */
    private String fOid;
 
    /**
     * from端版本主键
     */
    private String fRevisionOid;
 
    /**
     * from端对象主键
     */
    private String fNameOid;
 
    /**
     * from端业务类型
     */
    private String fBtmName;
 
    /**
     * 是否为to端查询
     */
    private boolean queryFromToFlag = false;
 
    /**
     * 是否包含自身
     */
    private boolean hasSelf = false;
 
    /**
     * 默认构造函数
     */
    public VciParentQueryOption(){
 
    }
 
    /**
     * 自参照形式设置上级字段
     * @param parentFieldName 上级字段的属性名称
     */
    public VciParentQueryOption(String parentFieldName){
        this.parentFieldName = parentFieldName;
    }
 
    /**
     * 链接类型查询
     * @param linkTypeName 链接类型的名称
     */
    public void linkType(String linkTypeName){
        this.linkTypeName = linkTypeName;
        this.linkTypeFlag = true;
    }
 
    /**
     * 链接类型查询
     * @param linkTypeName 链接类型的名称
     * @param queryFromToFlag 从To端查询
     */
    public void linkType(String linkTypeName,boolean queryFromToFlag){
        this.linkTypeName = linkTypeName;
        this.linkTypeFlag = true;
        this.queryFromToFlag = queryFromToFlag;
    }
 
    public String getParentFieldName() {
        return parentFieldName;
    }
 
    public void setParentFieldName(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
 
    public boolean isLinkTypeFlag() {
        return linkTypeFlag;
    }
 
    public void setLinkTypeFlag(boolean linkTypeFlag) {
        this.linkTypeFlag = linkTypeFlag;
    }
 
    public String getLinkTypeName() {
        return linkTypeName;
    }
 
    public void setLinkTypeName(String linkTypeName) {
        this.linkTypeName = linkTypeName;
    }
 
    public String getfOid() {
        return fOid;
    }
 
    public void setfOid(String fOid) {
        this.fOid = fOid;
    }
 
    public String getfRevisionOid() {
        return fRevisionOid;
    }
 
    public void setfRevisionOid(String fRevisionOid) {
        this.fRevisionOid = fRevisionOid;
    }
 
    public String getfNameOid() {
        return fNameOid;
    }
 
    public void setfNameOid(String fNameOid) {
        this.fNameOid = fNameOid;
    }
 
    public String getfBtmName() {
        return fBtmName;
    }
 
    public void setfBtmName(String fBtmName) {
        this.fBtmName = fBtmName;
    }
 
    public boolean isQueryFromToFlag() {
        return queryFromToFlag;
    }
 
    public void setQueryFromToFlag(boolean queryFromToFlag) {
        this.queryFromToFlag = queryFromToFlag;
    }
 
    public boolean isHasSelf() {
        return hasSelf;
    }
 
    public void setHasSelf(boolean hasSelf) {
        this.hasSelf = hasSelf;
    }
 
    @Override
    public String toString() {
        return "VciParentQueryOption{" +
                "parentFieldName='" + parentFieldName + '\'' +
                ", linkTypeFlag=" + linkTypeFlag +
                ", linkTypeName='" + linkTypeName + '\'' +
                ", fOid='" + fOid + '\'' +
                ", fRevisionOid='" + fRevisionOid + '\'' +
                ", fNameOid='" + fNameOid + '\'' +
                ", fBtmName='" + fBtmName + '\'' +
                ", queryFromToFlag=" + queryFromToFlag +
                ", hasSelf=" + hasSelf +
                '}';
    }
}