package plm.portal.utility; import java.util.List; import java.util.Map; import org.dom4j.DocumentException; import com.vci.corba.common.VCIError; import plm.bs.bom.common.BusinessObject; import plm.bs.bom.common.LinkObject; import plm.corba.portal.PortalVI; import plm.corba.qt.BOAndLO; import plm.corba.refquery.RefPath; import plm.oq.objectQuery.common.OrderInfo; import plm.oq.objectQuery.common.PageInfo; public interface IDataModelProcessor { /** * 根据输入参数自定义查询模板,根据自定义的查询模板获取符合条件的业务对象查询结果 * @param btmName,业务类型名称 * @param clauseList,返回的字段列表,暂时默认支持* * @param queryChildrenFlag,是否查询子业务类型的数据 * @param rightFlag,是否根据数据授权过滤,true:进行数据授权过滤,false:不进行数据授权过滤 * @param queryCondition,查询条件map,即需要附加到业务类型的查询语句的查询条件 * @param version,1:当前版本当前版次;2代表当前版本最新版次;3:代表最新版本最新版次;4代表当前发布有效版 * @param pageInfo,分页信息,不需要分页时将其设为null即可,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @param orderInfoList,排序信息,不需要是将其设置为null, 其包含三个属性:level:排序优先级,数越小越优先; orderField:排序字段名称;orderMode:属性ASC或DESC; * @return * @throws VCIError * @throws DocumentException */ public BusinessObject[] getBusinessObjectByCondition(String btmName, List clauseList, boolean queryChildrenFlag, boolean rightFlag, Map queryCondition, int version, PageInfo pageInfo, List orderInfoList) throws VCIError; /** * 自定义查询模板,根据查询条件查询符合条件的链接类型查询结果 * @param linkName,link名称 * @param clauseList,返回的字段列表,暂时默认支持* * @param queryISLeaf,是否查询叶子节点,true代表查询,false代表不查询 * @param rightFlag,是否根据数据授权过滤,true:进行数据授权过滤,false:不进行数据授权过滤 * @param direction,查询方向,true代表正向查询,false代表反向查询 * @param queryCondition,是否查询子业务类型的数据 * @param version,1:当前版本当前版次;2代表当前版本最新版次;3:代表最新版本最新版次;4代表当前发布有效版 * @param pageInfo,分页信息,不需要分页时将其设为null即可,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @param level,查询的层级,-1代表所有,其他数字代码查询的具体层数 * @param orderInfoList,排序信息,不需要是将其设置为null, 其包含三个属性:level:排序优先级,数越小越优先; orderField:排序字段名称;orderMode:属性ASC或DESC; * @param recReturnMode,是否去重,true代表去重,false代表不去重 * @param objId,源对象ID * @param btmType,查询目标对象的业务类型 * @return * @throws VCIError */ public LinkObject[] getLinkObjectByCondition(String linkName, List clauseList, boolean queryISLeaf, boolean rightFlag, boolean direction, Map queryCondition, int version, PageInfo pageInfo, int level, List orderInfoList, boolean recReturnMode, String objId, String btmType) throws VCIError; /** * 自定义查询模板,根据查询条件查询符合条件的业务对象和链接类型查询结果 * @param linkName,link名称 * @param clauseList,返回的字段列表,暂时默认支持* * @param queryISLeaf,是否查询叶子节点,true代表查询,false代表不查询 * @param rightFlag,是否根据数据授权过滤,true:进行数据授权过滤,false:不进行数据授权过滤 * @param direction,查询方向,true代表正向查询,false代表反向查询 * @param queryCondition,是否查询子业务类型的数据 * @param version,1:当前版本当前版次;2代表当前版本最新版次;3:代表最新版本最新版次;4代表当前发布有效版 * @param pageInfo,分页信息,不需要分页时将其设为null即可,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @param level,查询的层级,-1代表所有,其他数字代码查询的具体层数 * @param orderInfoList,排序信息,不需要是将其设置为null, 其包含三个属性:level:排序优先级,数越小越优先; orderField:排序字段名称;orderMode:属性ASC或DESC; * @param recReturnMode,是否去重,true代表去重,false代表不去重 * @param objId,源对象ID * @param btmType,查询目标对象的业务类型 * @return * @throws VCIError */ public BOAndLO[] getBOLOsByCondition(String linkName, List clauseList, boolean queryISLeaf, boolean rightFlag, boolean direction, Map queryCondition, int version, PageInfo pageInfo, int level, List orderInfoList, boolean recReturnMode, String objId, String btmType) throws VCIError; /** * 根据查询模板及附加条件查询业务对象 * @param queryTemplate,查询模板名称 * @param replaceMap,替换属性map * @param conditionMap,查询条件map * @param pageInfo,分页信息,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @return * @throws VCIError * @throws DocumentException */ public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap, PageInfo pageInfo) throws VCIError; /** * 根据查询模板及附加条件查询业务对象 * @param queryTemplate,查询模板名称 * @param replaceMap,替换属性map * @param conditionMap,查询条件map * @param pageInfo,分页信息,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @param orderInfos: 排序信息 * @return * @throws VCIError * @throws DocumentException */ public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap, PageInfo pageInfo, List orderInfos) throws VCIError; /** * 根据查询模板查询符合要求的link对象 * @param queryTemplate,查询模板 * @param replaceMap,替换map, * @param conditionMap,附件的查询条件 * @param pageInfo,分页信息,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @return * @throws VCIError * @throws DocumentException */ public LinkObject[] getLinkObjectByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap, PageInfo pageInfo) throws VCIError; /** * 根据查询模板查询符合要求的业务对象和链接对象 * @param queryTemplate,查询模板 * @param replaceMap,替换map, * @param conditionMap,附件的查询条件 * @param pageInfo,分页信息,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @return * @throws VCIError * @throws DocumentException */ public BOAndLO[] getBOLOsByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap, PageInfo pageInfo) throws VCIError; /** * 根据查询模板查询符合要求的业务对象和链接对象 * @param queryTemplate,查询模板 * @param replaceMap,替换map, * @param conditionMap,附件的查询条件 * @param pageInfo,分页信息,其包含两个属性:pageNO:页数和rowCount:当前页显示条数 * @return * @throws VCIError * @throws DocumentException */ public BOAndLO[] getBOLOsByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap, PageInfo pageInfo, List orderInfos) throws VCIError; /** * 根据form定义获取form的显示信息 * @param formDef,form的定义 * @return Map,key代表显示的主键,value为显示的具体信息 */ public Map getFormColumnMap(PortalVI formDef); /** * 根据列表关联的form以及列表显示列,获取表头显示的信息 * @param formDef,列表对应的表单信息; * @param tableCol,显示的列名 * @return Map,key代表显示的主键,value为显示的具体信息 */ public Map getSheetColumnMap(PortalVI formDef, String[] tableCol); /** * 根据查询结果获取定义显示的值 * * @param key,显示的值 * @param value,实际存储值 * @param selectValues,定义的list * @return */ public String getSelectDisplayValue(String key , String value, List selectValues); /** * 获取多文件的列 * @param formDef * @return */ public Map getMultiFileCol(PortalVI formDef); /** * 获取文件列 * @param formDef * @return */ public Map getFileCol(PortalVI formDef); /** * 获取自定义属性列 * @param formDef * @return */ public Map getCustomCol(PortalVI formDef); /** * 获取参照列 * 参照列为带有.分割的列,如t_oid.name, dept.name等 * @param queryCol,key的值为t_oid或者dept.name,值为以t_oid开头的list集合,如key=t_oid时,value为t_oid.name,t_oid.id的list集合。 * @return */ public Map> getReferenceCol(Map queryCol); /** * 获取列表的分隔符 * @param prm * @return */ public String getTableQueryTemplate(PRM prm); /** * 后去form的查询模版 * @param prm * @return */ public String getFormQueryTemplate(PRM prm); /** * 根据查询模版以及替换条件获取链接对象数据 * * @param queryTemplate,查询模版 * @param replaceMap,替换条件 * @return * @throws PLMError * @throws VCIException * @throws DocumentException */ public LinkObject[] getLinkObjectByQueryTemplate(String queryTemplate, Map replaceMap) throws VCIError, DocumentException; /** * 根据查询模版以及替换条件、查询条件获取链接对象数据 * * @param queryTemplate,查询模版 * @param replaceMap,替换条件 * @param conditionMap,查询条件 * @return * @throws VCIError * @throws DocumentException */ public LinkObject[] getLinkObjectByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap) throws VCIError, DocumentException; /** * 根据查询条件获取链接对象数据 * @param conditions,查询条件 * @param direction,方向,true为正向,false为反向 * @return * @throws PLMError * @throws VCIException */ public LinkObject[] getLinkObjectByCondition(Map conditions, boolean direction) throws VCIError; /** * 根据查询模版获取业务对象 * @param queryTemplate,查询模版 * @param replaceMap,替换条件 * @return * @throws PLMError * @throws VCIException * @throws DocumentException */ public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map replaceMap) throws VCIError, DocumentException; /** * 根据查询模版以及查询条件获取业务对象 * @param queryTemplate,查询模版 * @param replaceMap,替换条件 * @param conditionMap,查询条件 * @return * @throws VCIError * @throws DocumentException */ public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map replaceMap, Map conditionMap) throws VCIError, DocumentException; /** * 根据查询条件获取业务对象 * @param conditions,查询条件 * @return * @throws PLMError * @throws VCIException */ public BusinessObject[] getBusinessObjectByCondition(Map conditions) throws VCIError; /** * 获取查询业务对象的查询条件 * @param type,查询的业务类型名称 * @param rowRefMap,主map中的key为行数据的OID,如果是bo对象值为bo的oid,如果是lo对象值为lo的oid;主对象对应的map值中的key、value描述如下: * key为对应的参照属性名称(如t_oid、f_oid或其他的参照属性),value为对应参照的oid值(如t_oid、f_oid或者对应参照属性对应的值) * @param referenceKeyMap * @return String[] referenceDatas * = new String[] { * "btd.gg=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.ddd.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.gg.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.gg.gg.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.gg.gg.ddd.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , * "btd.gg.gg.gg.ddd.gg.name=22385E82-485C-549D-E2F4-91278E9E0A78,22385E82-485C-549D-E2F4-91278E9E0A75" * , "btd.ddd=22385E82-485C-549D-E2F4-91278E9E0A78", * "btd.ddd.ddd.gg.name=22385E82-485C-549D-E2F4-91278E9E0A78" }; */ public Map getQueryBusinessObjectCondition(String type, Map> rowRefMap, Map> referenceKeyMap); /** * 获取查询链接对象的查询条件 * @param linkType * @param rowRefMap * @param referenceKeyMap * @return */ public Map getQueryLinkObjectCondition(String linkType, Map rowKeyMap, Map rowRefMap, Map> referenceKeyMap); /** * 获取二次查询结果 * @param map * @param typeName * @return 行数为传入值的属性个数,列数为传入值的的Id个数,每列的值对应到对应的Id列。 */ public RefPath[] queryReference(Map map, String typeName); /** * 根据查询模版获取符合条件对象的条数 * @param queryTemplate,查询模版 * @param replaceMap,替换map * @param conditionMap,扩展过滤条件 * @return * @throws VCIError */ public int getObjectCountByTemplate(String queryTemplate, Map replaceMap, Map conditionMap) throws VCIError; /** * 获取二次查询结果 * @param map * @param typeNames, 查询类型数组 * @return 行数为传入值的属性个数,列数为传入值的的Id个数,每列的值对应到对应的Id列。 */ public RefPath[] queryReference(Map map, String[] typeNames); }