From e973fb747f0d1a382fb9e4cdb20383a0a546ef67 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期二, 03 十二月 2024 15:01:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java | 224 +++++++++++++++++++++++++++++++------------------------- 1 files changed, 124 insertions(+), 100 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java index 5497ddb..1ce66c2 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java @@ -1,16 +1,26 @@ package com.vci.web.service.impl; +import com.vci.client.common.oq.OQTool; +import com.vci.common.qt.object.QueryTemplate; import com.vci.corba.common.PLException; import com.vci.corba.framework.data.UserInfo; -import com.vci.corba.omd.btm.BizType; -import com.vci.corba.omd.data.*; +import com.vci.corba.omd.data.BusinessObject; +import com.vci.corba.omd.data.LinkObject; +import com.vci.corba.omd.data.RevisionDataInfo; +import com.vci.corba.omd.data.VersionDataInfo; import com.vci.corba.omd.lcm.LifeCycle; import com.vci.corba.omd.ltm.LinkType; +import com.vci.corba.omd.qtm.QTInfo; +import com.vci.corba.query.data.BOAndLO; import com.vci.dto.*; -import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus; -import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus; +import com.vci.lcstatuspck.FrameworkDataLCStatus; +import com.vci.lcstatuspck.ReleaseDataLCStatus; import com.vci.omd.utils.ObjectTool; import com.vci.pagemodel.*; +import com.vci.query.UIDataGridQuery; +import com.vci.query.UIFormQuery; +import com.vci.query.UILinkTypeDataQuery; +import com.vci.query.UITreeQuery; import com.vci.starter.revision.bo.TreeWrapperOptions; import com.vci.starter.web.annotation.bus.VciChangeDataAfter; import com.vci.starter.web.annotation.bus.VciChangeDataBefore; @@ -22,19 +32,16 @@ import com.vci.starter.web.model.BaseModel; import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.util.*; +import com.vci.starter.web.util.Lcm.Func; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.enumpck.DeleteTypeEnum; import com.vci.web.enumpck.UIFieldTypeEnum; import com.vci.web.enumpck.UITreeLoadTypeEnum; -import com.vci.web.query.UIDataGridQuery; -import com.vci.web.query.UIFormQuery; -import com.vci.web.query.UILinkTypeDataQuery; -import com.vci.web.query.UITreeQuery; import com.vci.web.service.*; -import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; +import org.dom4j.DocumentHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -142,7 +149,7 @@ VciBaseUtil.alertNotNull(dataGridQuery,"鏌ヨ瀵硅薄",dataGridQuery.getBtmname(),"涓氬姟绫诲瀷",dataGridQuery.getTableDefineId()); //鍏堝垽鏂煡璇㈡ā鏉� UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO(); - String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())?dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()):tableDefineVO.getQueryTemplateName(); + String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName(); if(StringUtils.isBlank(queryTemplate)){ //璇存槑娌℃湁璁剧疆鏌ヨ妯℃澘锛岄渶瑕佺湅鐪嬪湪杩欎釜琛ㄦ牸鎵�鍦ㄧ殑缁勪欢鏈夋病鏈夎缃� tableDefineVO = uiEngineService.getTableById(dataGridQuery.getBtmname(), dataGridQuery.getTableDefineId()); @@ -187,7 +194,7 @@ queryFieldList.add("creator_name"); queryFieldList.add("lastmodifier_name"); //鎴戜滑鍦ㄥ悗鍙版煡璇笟鍔℃暟鎹� - Map<String, String> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData()); + Map<String, Object> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData()); if(dataGridQuery.isLinkTypeFlag()){ UILinkTypeDataQuery linkTypeDataQuery = new UILinkTypeDataQuery(); @@ -220,7 +227,7 @@ public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(formQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",formQuery.getBtmname(),"涓氬姟绫诲瀷鐨勪俊鎭�",formQuery.getOid(),"涓氬姟鏁版嵁鐨勪富閿�",formQuery.getFormDefineId(),"琛ㄥ崟鐨勫畾涔夌紪鍙�"); UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId()); - String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())?formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()):formDefineVO.getQueryTemplateName(); + String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())? (String) formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()) :formDefineVO.getQueryTemplateName(); Set<String> queryFieldList = formDefineVO.getItems().stream().filter(s->!UIFieldTypeEnum.CUSTOM.getValue().equalsIgnoreCase(s.getType())).map(UIFormItemVO::getField).collect(Collectors.toSet()); //鑾峰彇鍙傜収 List<UIFormItemVO> referFieldList = formDefineVO.getItems().stream().filter(s -> UIFieldTypeEnum.REFER.getValue().equalsIgnoreCase(s.getType())).collect(Collectors.toList()); @@ -253,7 +260,7 @@ queryFieldList.add("creator_name"); queryFieldList.add("lastmodifier_name"); Map<String,String> conditionMap = WebUtil.getOidQuery(formQuery.getOid()); - Map<String, String> replaceMap = wrapperReplaceMap(formQuery.getSourceData()); + Map<String, Object> replaceMap = wrapperReplaceMap(formQuery.getSourceData()); UIFormDataVO formDataVO = new UIFormDataVO(); replaceMap.put("oid", formQuery.getOid().trim()); if(!formDefineVO.isLinkTypeFlag()) { @@ -323,13 +330,14 @@ * @param sourceDataMap 鏉ユ簮鏁版嵁 * @return 鏇挎崲鍚庣殑鍊� */ - private Map<String,String> wrapperReplaceMap(Map<String,String> sourceDataMap){ - Map<String,String> replaceMap =!CollectionUtils.isEmpty(sourceDataMap)? sourceDataMap:new HashMap<>(); + private Map<String,Object> wrapperReplaceMap(Map<String,Object> sourceDataMap){ + Map<String,Object> replaceMap =!CollectionUtils.isEmpty(sourceDataMap)? sourceDataMap:new HashMap<>(); if(!replaceMap.containsKey("f_oid")){ replaceMap.put("f_oid",replaceMap.getOrDefault("oid","")); } - if(replaceMap.get("f_oid").contains(TREE_NODE_ID_SEP)){ - replaceMap.put("f_oid",replaceMap.get("f_oid").split(TREE_NODE_ID_SEP)[1]); + String fOid = replaceMap.get("f_oid").toString(); + if(fOid.contains(TREE_NODE_ID_SEP)){ + replaceMap.put("f_oid",fOid.split(TREE_NODE_ID_SEP)[1]); } return replaceMap; } @@ -347,7 +355,7 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException { + public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception { VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getBtmname(),"涓氬姟绫诲瀷鐨勪俊鎭�",treeQuery.getComponentOid(),"鏍戞墍鍦ㄧ殑缁勪欢鐨勪富閿�"); Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap(); UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap); @@ -362,7 +370,14 @@ if(!treeQuery.isLinkTypeFlag() && StringUtils.isBlank(treeQuery.getParentBtmName())){ treeQuery.setParentBtmName(treeQuery.getBtmname()); } - + //TODO: 鏇挎崲鏍戝畾涔変笂鐨勬鍙嶅悜鏌ヨ灞炴�э紝鍥犱负姝e弽鍚戞煡璇㈡槸鐢遍摼鎺ョ被鍨嬫煡璇㈡ā鏉夸笂鎺у埗鐨� + boolean isOrientation = false; //鏄惁鍙嶅悜锛屼娇鐢ㄦā鏉夸笂閰嶇疆鐨� + String qtName = treeDefineVO.getQueryTemplateName(); + if(Func.isNotBlank(treeDefineVO.getLinkType()) && Func.isNotBlank(qtName)){ + QTInfo wrapper = platformClientUtil.getQTDService().getQT(qtName); + QueryTemplate qt = OQTool.getQTByDoc(DocumentHelper.parseText(wrapper.qtText), qtName); + isOrientation = qt.getDirection().equals("opposite"); + } if(treeQuery.getConditionMap() == null){ treeQuery.setConditionMap(new HashMap<>()); } @@ -381,15 +396,15 @@ if(StringUtils.isNotBlank(treeQuery.getParentOid()) && treeQuery.getParentOid().contains(TREE_NODE_ID_SEP)){ treeQuery.setParentOid(treeQuery.getParentOid().split(TREE_NODE_ID_SEP)[1]); } - String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName()); - String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); + String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())? (String) treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()) :treeDefineVO.getQueryTemplateName()); + String valueField = treeQuery.isLinkTypeFlag()?(!isOrientation?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name"); - List<Tree> rootTreeList = new ArrayList<>(); + List<UIDataTree> rootTreeList = new ArrayList<>(); List<String> queryFieldList = new ArrayList<>(); queryFieldList.add("creator_name"); queryFieldList.add("lastmodifier_name"); String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent(); - Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); + Map<String, Object> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); if(StringUtils.isBlank(treeDefineVO.getLinkType())){ //杩欎釜鏄笟鍔$被鍨嬬殑鑷弬鐓� //浠ュ墠鐨勫钩鍙版病鏈夊鑷弬鐓ц繖绉嶆湁鍏ㄩ儴鏌ヨ鐨� @@ -461,7 +476,7 @@ linkTypeDataQuery.setConditionMap(treeQuery.getConditionMap()); linkTypeDataQuery.setParentOid(treeQuery.getParentOid()); linkTypeDataQuery.setClauseList(queryFieldList); - linkTypeDataQuery.setDirection(treeDefineVO.isOrientation()); + linkTypeDataQuery.setDirection(isOrientation); linkTypeDataQuery.setToBtmType(treeDefineVO.getBtmType()); linkTypeDataQuery.setLinkType(treeDefineVO.getLinkType()); if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){ @@ -469,7 +484,7 @@ } if(treeQuery.isQueryRoot()){ //鏌ヨ鏍硅妭鐐�.鎴戜滑闇�瑕佸垽鏂槸鍚﹁缃簡鏍硅妭鐐圭殑鏌ヨ鏉′欢 - List<com.vci.corba.query.data.BOAndLO> rootCbos = null; + List<BOAndLO> rootCbos = null; String parentFieldNameAndValue = treeDefineVO.getShowLinkAbs(); if(StringUtils.isNotBlank(parentFieldNameAndValue)){ if(StringUtils.isNotBlank(queryTemplate)){ @@ -491,7 +506,7 @@ } if(!CollectionUtils.isEmpty(rootCbos)){ if(StringUtils.isBlank(parentFieldName)){ - if(treeDefineVO.isOrientation()){ + if(isOrientation){ parentFieldName = "t_oid"; }else{ parentFieldName = "f_oid"; @@ -511,15 +526,15 @@ if(CollectionUtils.isEmpty(replaceMap)){ throw new VciBaseException("鏍硅妭鐐规病鏈夐厤缃煡璇㈡潯浠讹紝涔熸病鏈夋潵婧愭暟鎹�"); } - Tree root = new Tree(); - root.setOid(replaceMap.getOrDefault("oid",replaceMap.getOrDefault("t_oid",""))); + UIDataTree root = new UIDataTree(); + root.setOid((String) replaceMap.getOrDefault("oid",replaceMap.getOrDefault("t_oid",""))); root.setText(getValueByExpressForBOAndLO(new HashMap<>(),replaceMap,rootExpress)); root.setAttributes(replaceMap); root.setIndex("0"); rootTreeList.add(root); if(StringUtils.isBlank(parentFieldName)){ - if(treeDefineVO.isOrientation()){ + if(isOrientation){ parentFieldName = "t_oid"; }else{ parentFieldName = "f_oid"; @@ -539,7 +554,7 @@ if(linkTypeDataQuery.getReplaceMap() == null){ linkTypeDataQuery.setReplaceMap(new HashMap<>()); } - linkTypeDataQuery.getReplaceMap().put(treeDefineVO.isOrientation()?"t_oid":"f_oid",treeQuery.getParentOid()); + linkTypeDataQuery.getReplaceMap().put(isOrientation?"t_oid":"f_oid",treeQuery.getParentOid()); } return cloAndCbo2Trees(loService.queryCLOAndBoByLinkType(linkTypeDataQuery),valueField,textField,parentFieldName,treeQuery.isShowCheckBox(),treeQuery.getParentOid()); } @@ -553,7 +568,7 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException { + public BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception { VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getComponentOid(),"褰撳墠缁勪欢鐨勪富閿�"); //1銆佸厛鏌ヨ椤甸潰瀹氫箟缁勪欢 Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap(); @@ -563,12 +578,19 @@ } // 2銆佹牴鎹厤缃殑鏌ヨ妯℃澘鏌ヨ鏁版嵁(闇�瑕佽�冭檻鍏ㄩ潰涓�鐐�), // 杩欏効鏍规嵁褰撳墠绫诲瀷鏉ヨ幏鍙栨槸浠�涔堢被鍨嬬殑鏌ヨ妯℃澘锛岀劧鍚庡仛瀵瑰簲鐨勬煡璇㈠鐞� - + //TODO: 鏇挎崲鏍戝畾涔変笂鐨勬鍙嶅悜鏌ヨ灞炴�э紝鍥犱负姝e弽鍚戞煡璇㈡槸鐢遍摼鎺ョ被鍨嬫煡璇㈡ā鏉夸笂鎺у埗鐨� UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO(); - String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName()); - Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); + boolean isOrientation = false; //鏄惁鍙嶅悜锛屼娇鐢ㄦā鏉夸笂閰嶇疆鐨� + String qtName = treeDefineVO.getQueryTemplateName(); + if(Func.isNotBlank(treeDefineVO.getLinkType()) && Func.isNotBlank(qtName)){ + QTInfo wrapper = platformClientUtil.getQTDService().getQT(qtName); + QueryTemplate qt = OQTool.getQTByDoc(DocumentHelper.parseText(wrapper.qtText), qtName); + isOrientation = qt.getDirection().equals("opposite"); + } + String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())? (String) treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()) :treeDefineVO.getQueryTemplateName()); + Map<String, Object> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); List<String> queryFieldList = new ArrayList<>(); - String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); + String valueField = treeQuery.isLinkTypeFlag()?(!isOrientation?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name"); String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent(); String parentFieldName = treeQuery.getParentFieldName(); @@ -586,7 +608,7 @@ List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap); //3銆佹牴鎹笉鍚岀殑缁勪欢杩斿洖涓嶅悓鐨勬暟鎹被鍨嬶紙鏍戙�佸垪琛ㄣ�佹爲琛ㄣ�佽嚜瀹氫箟妯℃澘銆佽〃鍗曠瓑锛� - List<Tree> rootTreeList = null; + List<UIDataTree> rootTreeList = null; if(!CollectionUtils.isEmpty(rootCbos)){ rootTreeList = cbo2Trees(rootCbos,valueField,StringUtils.isBlank(rootExpress)?textField:rootExpress,parentFieldName,treeQuery.isShowCheckBox(),null); TreeQueryObject treeQueryObject = new TreeQueryObject(); @@ -609,19 +631,19 @@ * @param queryFieldList 鏌ヨ鐨勫瓧娈� * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄锛岄渶瑕乿alueField鍜宼extField锛岃繕鏈塸arentFieldName,鍜宑heckBox */ - private void queryTreeForBO(List<Tree> rootTreeList, String queryTemplate,List<String> queryFieldList,TreeQueryObject treeQueryObject) { - for (Tree rootTree : rootTreeList) { + private void queryTreeForBO(List<UIDataTree> rootTreeList, String queryTemplate,List<String> queryFieldList,TreeQueryObject treeQueryObject) { + for (UIDataTree rootTree : rootTreeList) { List<BusinessObject> thisChildren = null; - Map<String,String> sourceDataMap = rootTree.getAttributes(); + Map<String,Object> sourceDataMap = rootTree.getAttributes(); sourceDataMap.put("f_oid",rootTree.getOid()); Map<String,String> conditionMap = new HashMap<>(); conditionMap.put(treeQueryObject.getParentFieldName(),rootTree.getOid()); if (StringUtils.isNotBlank(queryTemplate)) { thisChildren = boService.queryCBOByScheme(queryTemplate, conditionMap, sourceDataMap, null, queryFieldList); } else { - thisChildren = boService.queryCBO(sourceDataMap.getOrDefault("btmname",sourceDataMap.getOrDefault("btmName",treeQueryObject.getParentBtmName())), conditionMap, null, queryFieldList); + thisChildren = boService.queryCBO((String) sourceDataMap.getOrDefault("btmname",sourceDataMap.getOrDefault("btmName",treeQueryObject.getParentBtmName())), conditionMap, null, queryFieldList); } - List<Tree> childrenTree = cbo2Trees(thisChildren, treeQueryObject.getValueField(), treeQueryObject.getTextField(), treeQueryObject.getParentFieldName(), treeQueryObject.isShowCheckBox(), null); + List<UIDataTree> childrenTree = cbo2Trees(thisChildren, treeQueryObject.getValueField(), treeQueryObject.getTextField(), treeQueryObject.getParentFieldName(), treeQueryObject.isShowCheckBox(), null); rootTree.setChildren(childrenTree); if(treeQueryObject.isQueryAllLevel() && !CollectionUtils.isEmpty(childrenTree) ) { queryTreeForBO(childrenTree,queryTemplate,queryFieldList,treeQueryObject); @@ -638,8 +660,8 @@ * @param textField 鏄剧ず琛ㄨ揪寮� * @param showCheckBox 鏄惁鏄剧ず澶嶉�夋 */ - private void queryTreeForLO(List<Tree> rootTreeList, UILinkTypeDataQuery linkTypeDataQuery,String parentFieldName,String valueField,String textField,boolean showCheckBox) { - for (Tree rootTree : rootTreeList) { + private void queryTreeForLO(List<UIDataTree> rootTreeList, UILinkTypeDataQuery linkTypeDataQuery,String parentFieldName,String valueField,String textField,boolean showCheckBox) { + for (UIDataTree rootTree : rootTreeList) { Map<String,String> conditionMap = new HashMap<>(); conditionMap.put(linkTypeDataQuery.isDirection()?"t_oid":"f_oid",rootTree.getOid()); linkTypeDataQuery.setConditionMap(conditionMap); @@ -658,18 +680,21 @@ * @param parentOid 涓婄骇鐨勪富閿� * @return 鏍� */ - private List<Tree> cbo2Trees(Collection<BusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){ + private List<UIDataTree> cbo2Trees(Collection<BusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){ final int[] i = {0}; - List<Tree> rootList = new ArrayList<>(); - List<Tree> children = new ArrayList<>(); + List<UIDataTree> rootList = new ArrayList<>(); + List<UIDataTree> children = new ArrayList<>(); cbos.stream().forEach(cbo->{ - Tree tree = new Tree(); + UIDataTree tree = new UIDataTree(); tree.setOid(getValueByExpress(cbo,valueField)); tree.setText(getValueByExpress(cbo,textField)); if(StringUtils.isNotBlank(parentFieldName)){ tree.setParentId(ObjectTool.getBOAttributeValue(cbo,parentFieldName)); } - tree.setAttributes(boService.cbo2Map(cbo)); + Map<String,Object> cbo2Map = boService.cbo2Map(cbo); + Map<String, Object> returnMap = new HashMap<>(); + returnMap.put((String) cbo2Map.get("btmname"),cbo2Map); + tree.setAttributes(returnMap); tree.setIndex(i[0] + ""); i[0]++; tree.setChecked(showCheckBox); @@ -683,7 +708,7 @@ if(rootList.size() == 0 && children.size() == 0){ return rootList; } - return Tree.getChildList(rootList,children); + return UIDataTree.getChildList(rootList,children); } /** @@ -696,42 +721,25 @@ * @param parentOid 涓婄骇鐨勫�� * @return 鏍戝舰鏁版嵁 */ - public List<Tree> cloAndCbo2Trees(Collection<com.vci.corba.query.data.BOAndLO> boAndLOS,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){ + public List<UIDataTree> cloAndCbo2Trees(Collection<BOAndLO> boAndLOS, String valueField, String textField, String parentFieldName, boolean showCheckBox, String parentOid){ final int[] i = {0}; - List<Tree> rootList = new ArrayList<>(); - List<Tree> children = new ArrayList<>(); + List<UIDataTree> rootList = new ArrayList<>(); + List<UIDataTree> children = new ArrayList<>(); boAndLOS.stream().forEach(boAndLO->{ - Tree tree = new Tree(); + UIDataTree tree = new UIDataTree(); BusinessObject cbo = new BusinessObject(); cbo = boAndLO.bo; LinkObject clo = new LinkObject(); clo = boAndLO.lo; - Map<String,String> cloMap = loService.clo2Map(clo); - Map<String,String> cbo2Map = boService.cbo2Map(cbo); - //灏嗛摼鎺ョ被鍨嬬殑灞炴�т篃鏀捐繘杩涜杩斿洖 - String linkName = Func.isNotBlank(cloMap.get("linktypename")) ? cloMap.get("linktypename"):parentFieldName; - Map<String, String> returnMap = new HashMap<>(); - cloMap.forEach((key,value)->{ - //杩囨护鎺夌┖鍊� - if(!returnMap.containsKey(linkName + key) && Func.isNotBlank(key) || Func.isNotBlank(value)){ - returnMap.put(linkName + key,value); - } - }); - //杩囨护鎺夌┖鍊硷紝鐢ㄤ綔杩斿洖鐨刴ap - cbo2Map.entrySet().stream().forEach(entry -> { - String key = entry.getKey(); - String value = entry.getValue(); - if (!returnMap.containsKey(key) && Func.isNotBlank(key) && Func.isNotBlank(value)) { - returnMap.put(key,value); - } - }); + Map<String,Object> cloMap = loService.clo2Map(clo); + Map<String,Object> cbo2Map = boService.cbo2Map(cbo); - if(!CollectionUtils.isEmpty(cbo2Map)){ + /*if(!CollectionUtils.isEmpty(cbo2Map)){ cbo2Map.forEach((key,value)->{ //TODO: 杩欏効涓哄暐瑕佹嫾鎺ヤ笂parentFieldName锛屽鑷村悗闈reemarker琛ㄨ揪寮忔棤娉曟纭浛鎹� - cloMap.put(/*parentFieldName + "." +*/ key,value); + cloMap.put(/*parentFieldName + "." + key,value); }); - } + }*/ tree.setOid(getValueByExpressForBOAndLO(cloMap,cbo2Map,valueField)); tree.setText(getValueByExpressForBOAndLO(cloMap,cbo2Map,textField)); if(StringUtils.isBlank(parentFieldName)){ @@ -743,7 +751,10 @@ tree.setParentId(ObjectTool.getLOAttributeValue(clo,parentFieldName)); } } - + //TODO锛氳繑鍥炵殑鏁版嵁鏀规垚鎸夐摼鎺ョ被鍨嬪拰涓氬姟绫诲瀷涓簁ey锛氬�间负瀵瑰簲鐨勫睘鎬ч泦鍚堝舰寮忚繑鍥� + Map<String, Object> returnMap = new HashMap<>(); + returnMap.put((String) cloMap.get("linktypename"),cloMap); + returnMap.put((String) cbo2Map.get("btmname"),cbo2Map); tree.setAttributes(returnMap); tree.setIndex(i[0] + ""); i[0]++; @@ -756,7 +767,7 @@ } }); - return Tree.getChildList(rootList,children); + return UIDataTree.getChildList(rootList,children); } /** @@ -788,17 +799,30 @@ * @param fieldExpress 琛ㄨ揪寮� * @return 鏇挎崲鍚庣殑鍊� */ - private String getValueByExpressForBOAndLO(Map<String,String> valueMap,Map<String,String> boValueMap,String fieldExpress){ + private String getValueByExpressForBOAndLO(Map<String,Object> valueMap,Map<String,Object> boValueMap,String fieldExpress){ if(fieldExpress.contains("${")){ //浣跨敤freemarker澶勭悊 - return VciBaseUtil.replaceByFreeMarker(fieldExpress,valueMap); + /* + TODO:琛ㄨ揪寮忓瓨鍦═_OID.name杩欑褰㈠紡鏃秄reemarker鏇挎崲瑙勫垯鏄粠T_OID杩欎釜瀵硅薄涓嫑name灞炴�э紝 + 浣嗘槸valueMap鏄竴涓猄tring,String鐨凪ap鎵�浠ラ渶瑕佸皢T_OID.鎴朏_OID.鍘绘帀锛屽洜涓轰笉绠℃槸鏌ヨ鐨� + form绔繕鏄痶o绔兘鏄钩鍙版煡濂芥斁鍦ㄤ笟鍔″睘鎬oValueMap闆嗗悎涓殑锛屾墍浠ョ洿鎺ユ浛灏卞彲浠� + */ + if(fieldExpress.contains(".")){ + //鍘婚櫎t_oid銆乀_OID浠ュ強f_oid銆丗_OID + fieldExpress = fieldExpress + .replace("t_oid.","") + .replace("T_OID.","") + .replace("f_oid.","") + .replace("F_OID.",""); + } + return VciBaseUtil.replaceByFreeMarker(fieldExpress,boValueMap); }else { List<String> fieldList = VciBaseUtil.str2List(fieldExpress); - Map<String,String> valueLowMap = new HashMap<>(); + Map<String,Object> valueLowMap = new HashMap<>(); valueMap.forEach((key,value)->{ valueLowMap.put(key.toLowerCase(),value); }); - Map<String,String> boLowValueMap = new HashMap<>(); + Map<String,Object> boLowValueMap = new HashMap<>(); if(!CollectionUtils.isEmpty(boValueMap)){ boValueMap.forEach((key,value)->{ boLowValueMap.put(key.toLowerCase(),value); @@ -806,7 +830,7 @@ } StringBuilder sb = new StringBuilder(); fieldList.stream().forEach(field->{ - sb.append(valueLowMap.getOrDefault(field,boLowValueMap.getOrDefault(field,""))).append(" "); + sb.append(boLowValueMap.getOrDefault(field,valueLowMap.getOrDefault(field,""))).append(" "); }); return sb.toString().trim(); } @@ -854,7 +878,7 @@ if((baseModelDTOList == null || CollectionUtils.isEmpty(baseModelDTOList.getDataList())) && (baseLinkModelDTOList == null || CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))){ return BaseResult.success(); } - String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmname():null; + String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmName():null; String linkType = (baseLinkModelDTOList !=null && !CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))?baseLinkModelDTOList.getDataList().get(0).getLinkType():null; if(StringUtils.isNotBlank(preEvent)){ //鍓嶇疆浜嬩欢 @@ -1064,7 +1088,7 @@ public BaseModelDTOList formData2DTOList(FormDataDTO formDataDTO){ BaseModelDTOList modelDTOList = new BaseModelDTOList(); BaseModelDTO modelDTO = new BaseModelDTO(); - BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO); + BeanUtilForVCI.convert(formDataDTO,modelDTO); modelDTO.setData(formDataDTO.getData()); List<BaseModelDTO> modelDTOS = new ArrayList<>(); modelDTOS.add(modelDTO); @@ -1082,7 +1106,7 @@ BaseLinkModelDTOList modelDTOList = new BaseLinkModelDTOList(); BaseLinkModelDTO modelDTO = new BaseLinkModelDTO(); modelDTO.setData(formLinkDataDTO.getData()); - BeanUtil.convert((BaseLinkModelDTO)formLinkDataDTO,modelDTO); + BeanUtilForVCI.convert(formLinkDataDTO,modelDTO); List<BaseLinkModelDTO> linkModelDTOS = new ArrayList<>(); linkModelDTOS.add(modelDTO); modelDTOList.setDataList(linkModelDTOS); @@ -1101,7 +1125,7 @@ modelDTOS.stream().findAny().orElseGet(()->null); formDataDTOList.getFormDataDTOS().forEach(formDataDTO -> { BaseModelDTO modelDTO = new BaseModelDTO(); - BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO); + BeanUtilForVCI.convert((BaseModelDTO)formDataDTO,modelDTO); modelDTO.setData(formDataDTO.getData()); modelDTOS.add(modelDTO); }); @@ -1120,7 +1144,7 @@ List<BaseLinkModelDTO> modelDTOS = new ArrayList<>(); formLinkDataDTOList.getDataDTOList().forEach(formDataDTO -> { BaseLinkModelDTO modelDTO = new BaseLinkModelDTO(); - BeanUtil.convert((BaseLinkModelDTO)formDataDTO,modelDTO); + BeanUtilForVCI.convert((BaseLinkModelDTO)formDataDTO,modelDTO); modelDTO.setData(formDataDTO.getData()); modelDTOS.add(modelDTO); }); @@ -1138,8 +1162,8 @@ @Override public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ - VciBaseUtil.alertNotNull(formDataDTO,"娣诲姞鐨勬暟鎹璞�",formDataDTO.getBtmname(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); - UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId()); + VciBaseUtil.alertNotNull(formDataDTO,"娣诲姞鐨勬暟鎹璞�",formDataDTO.getBtmName(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); + UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId()); String preEvent = formDataDTO.getPreEvent(); BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO); BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.ADD); @@ -1248,7 +1272,7 @@ baseModel.setOid(cbo.oid); baseModel.setNameOid(cbo.nameoid); baseModel.setRevisionOid(cbo.revisionid); - baseModel.setBtmname(cbo.btName); + baseModel.setBtmName(cbo.btName); baseModel.setLastR(String.valueOf(cbo.isLastR)); baseModel.setLastV(String.valueOf(cbo.isLastV)); baseModel.setFirstR(String.valueOf(cbo.isFirstR)); @@ -1405,7 +1429,7 @@ VciBaseUtil.alertNotNull(formDataDTOList,"瑕佹坊鍔犵殑鏁版嵁",formDataDTOList.getFormDataDTOS(),"瑕佹坊鍔犵殑鏁版嵁"); //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get(); - UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId()); + UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId()); String preEvent = firstFormDataDTO.getPreEvent(); BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList); BaseResult beforeResult = callPreEvent(modelDTOList, null, preEvent, VciChangeDocumentTypeEnum.ADD); @@ -1442,7 +1466,7 @@ } if(!CollectionUtils.isEmpty(releasedFileOids)){ releasedFileOids.forEach((oid,fileOids)->{ - fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids); + fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids); }); } //鍚庣疆浜嬩欢 @@ -1473,8 +1497,8 @@ @Override public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ - VciBaseUtil.alertNotNull(formDataDTO,"淇敼鐨勬暟鎹璞�",formDataDTO.getBtmname(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); - UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId()); + VciBaseUtil.alertNotNull(formDataDTO,"淇敼鐨勬暟鎹璞�",formDataDTO.getBtmName(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�"); + UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId()); String preEvent = formDataDTO.getPreEvent(); BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO); BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT); @@ -1518,8 +1542,8 @@ @Override public BaseResult<Map<String, Object>> upRevision(FormDataDTO formDataDTO) throws VciBaseException, PLException { //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ - VciBaseUtil.alertNotNull(formDataDTO,"淇敼鐨勬暟鎹璞�",formDataDTO.getBtmname(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�",formDataDTO.getCopyFromVersion(),"鑰佺増鏈殑涓婚敭"); - UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId()); + VciBaseUtil.alertNotNull(formDataDTO,"淇敼鐨勬暟鎹璞�",formDataDTO.getBtmName(),"涓氬姟绫诲瀷鐨勫悕绉�",formDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�",formDataDTO.getCopyFromVersion(),"鑰佺増鏈殑涓婚敭"); + UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId()); String preEvent = formDataDTO.getPreEvent(); BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO); BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.UPREVISION); @@ -1532,7 +1556,7 @@ Map<String,String> conditionMap = WebUtil.getOidQuery(formDataDTO.getCopyFromVersion()); conditionMap.put("ts", VciDateUtil.date2Str(ts,VciDateUtil.DateTimeMillFormat)); conditionMap.put("oid",formDataDTO.getCopyFromVersion()); - businessObjects = boService.queryCBO(formDataDTO.getBtmname(), conditionMap); + businessObjects = boService.queryCBO(formDataDTO.getBtmName(), conditionMap); if(businessObjects.size() ==0){ throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽缓璁偍鍒锋柊鍚庨噸鏂版搷浣�"); } @@ -1579,7 +1603,7 @@ VciBaseUtil.alertNotNull(formDataDTOList,"瑕佷慨鏀圭殑鏁版嵁",formDataDTOList.getFormDataDTOS(),"瑕佷慨鏀圭殑鏁版嵁"); //棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖ FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get(); - UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId()); + UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId()); String preEvent = firstFormDataDTO.getPreEvent(); BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList); BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT); @@ -1609,7 +1633,7 @@ } if(!CollectionUtils.isEmpty(releasedFileOids)){ releasedFileOids.forEach((oid,fileOids)->{ - fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids); + fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids); }); } //鍚庣疆浜嬩欢 @@ -1634,7 +1658,7 @@ @Override public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(deleteDataDTO,"鏁版嵁浼犺緭瀵硅薄",deleteDataDTO.getDataList(),"鏁版嵁浼犺緭瀵硅薄"); - String btmName = deleteDataDTO.getDataList().get(0).getBtmname(); + String btmName = deleteDataDTO.getDataList().get(0).getBtmName(); List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList()); //鐪嬬湅绾ц仈鍒犻櫎銆傚彧鏈夎嚜宸卞紩鐢ㄨ嚜宸辩殑鏃跺�欏彲浠ョ骇鑱斿垹闄� List<BusinessObject> cbo = null; -- Gitblit v1.9.3