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<String> clauseList, boolean queryChildrenFlag, boolean rightFlag,
|
Map<String, String> queryCondition, int version, PageInfo pageInfo, List<OrderInfo> 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<String> clauseList, boolean queryISLeaf, boolean rightFlag, boolean direction,
|
Map<String, String> queryCondition, int version, PageInfo pageInfo, int level, List<OrderInfo> 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<String> clauseList, boolean queryISLeaf, boolean rightFlag, boolean direction,
|
Map<String, String> queryCondition, int version, PageInfo pageInfo, int level, List<OrderInfo> 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<String, String> replaceMap, Map<String, String> 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<String, String> replaceMap, Map<String, String> conditionMap, PageInfo pageInfo, List<OrderInfo> 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<String, String> replaceMap, Map<String, String> 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<String, String> replaceMap, Map<String, String> 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<String, String> replaceMap, Map<String, String> conditionMap, PageInfo pageInfo, List<OrderInfo> orderInfos) throws VCIError;
|
|
|
|
/**
|
* 根据form定义获取form的显示信息
|
* @param formDef,form的定义
|
* @return Map,key代表显示的主键,value为显示的具体信息
|
*/
|
public Map<String, String> getFormColumnMap(PortalVI formDef);
|
|
/**
|
* 根据列表关联的form以及列表显示列,获取表头显示的信息
|
* @param formDef,列表对应的表单信息;
|
* @param tableCol,显示的列名
|
* @return Map,key代表显示的主键,value为显示的具体信息
|
*/
|
public Map<String, String> getSheetColumnMap(PortalVI formDef, String[] tableCol);
|
|
/**
|
* 根据查询结果获取定义显示的值
|
*
|
* @param key,显示的值
|
* @param value,实际存储值
|
* @param selectValues,定义的list
|
* @return
|
*/
|
public String getSelectDisplayValue(String key , String value, List<String> selectValues);
|
|
/**
|
* 获取多文件的列
|
* @param formDef
|
* @return
|
*/
|
public Map<String, PRMItem> getMultiFileCol(PortalVI formDef);
|
|
/**
|
* 获取文件列
|
* @param formDef
|
* @return
|
*/
|
public Map<String, PRMItem> getFileCol(PortalVI formDef);
|
|
/**
|
* 获取自定义属性列
|
* @param formDef
|
* @return
|
*/
|
public Map<String, PRMItem> 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<String, List<String>> getReferenceCol(Map<String, String> 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<String, String> replaceMap) throws VCIError, DocumentException;
|
|
/**
|
* 根据查询模版以及替换条件、查询条件获取链接对象数据
|
*
|
* @param queryTemplate,查询模版
|
* @param replaceMap,替换条件
|
* @param conditionMap,查询条件
|
* @return
|
* @throws VCIError
|
* @throws DocumentException
|
*/
|
public LinkObject[] getLinkObjectByQueryTemplate(String queryTemplate, Map<String, String> replaceMap, Map<String, String> conditionMap) throws VCIError, DocumentException;
|
|
/**
|
* 根据查询条件获取链接对象数据
|
* @param conditions,查询条件
|
* @param direction,方向,true为正向,false为反向
|
* @return
|
* @throws PLMError
|
* @throws VCIException
|
*/
|
public LinkObject[] getLinkObjectByCondition(Map<String, String> conditions, boolean direction) throws VCIError;
|
|
/**
|
* 根据查询模版获取业务对象
|
* @param queryTemplate,查询模版
|
* @param replaceMap,替换条件
|
* @return
|
* @throws PLMError
|
* @throws VCIException
|
* @throws DocumentException
|
*/
|
public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map<String, String> replaceMap) throws VCIError, DocumentException;
|
|
/**
|
* 根据查询模版以及查询条件获取业务对象
|
* @param queryTemplate,查询模版
|
* @param replaceMap,替换条件
|
* @param conditionMap,查询条件
|
* @return
|
* @throws VCIError
|
* @throws DocumentException
|
*/
|
public BusinessObject[] getBusinessObjectByQueryTemplate(String queryTemplate, Map<String, String> replaceMap, Map<String, String> conditionMap) throws VCIError, DocumentException;
|
/**
|
* 根据查询条件获取业务对象
|
* @param conditions,查询条件
|
* @return
|
* @throws PLMError
|
* @throws VCIException
|
*/
|
public BusinessObject[] getBusinessObjectByCondition(Map<String, String> 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<String, String> getQueryBusinessObjectCondition(String type, Map<String, Map<String, String>> rowRefMap, Map<String, List<String>> referenceKeyMap);
|
|
/**
|
* 获取查询链接对象的查询条件
|
* @param linkType
|
* @param rowRefMap
|
* @param referenceKeyMap
|
* @return
|
*/
|
public Map<String, String> getQueryLinkObjectCondition(String linkType, Map<String, String> rowKeyMap, Map<String, String> rowRefMap, Map<String, List<String>> referenceKeyMap);
|
|
/**
|
* 获取二次查询结果
|
* @param map
|
* @param typeName
|
* @return 行数为传入值的属性个数,列数为传入值的的Id个数,每列的值对应到对应的Id列。
|
*/
|
public RefPath[] queryReference(Map<String, String> map, String typeName);
|
|
/**
|
* 根据查询模版获取符合条件对象的条数
|
* @param queryTemplate,查询模版
|
* @param replaceMap,替换map
|
* @param conditionMap,扩展过滤条件
|
* @return
|
* @throws VCIError
|
*/
|
public int getObjectCountByTemplate(String queryTemplate, Map<String, String> replaceMap, Map<String, String> conditionMap) throws VCIError;
|
|
/**
|
* 获取二次查询结果
|
* @param map
|
* @param typeNames, 查询类型数组
|
* @return 行数为传入值的属性个数,列数为传入值的的Id个数,每列的值对应到对应的Id列。
|
*/
|
public RefPath[] queryReference(Map<String, String> map, String[] typeNames);
|
}
|