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 + '}'; } }