From c071bc1a150f6d1050994661c416fad753efc338 Mon Sep 17 00:00:00 2001
From: dangsn <dangsn@chicecm.com>
Date: 星期三, 04 十二月 2024 11:45:52 +0800
Subject: [PATCH] 属性使用驼峰命名
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java | 338 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 233 insertions(+), 105 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 5d53a0d..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,14 +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.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;
@@ -20,18 +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.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;
@@ -69,6 +79,11 @@
*/
@Autowired
private OsBtmServiceI btmService;
+ /**
+ * 灞炴�ф湇鍔�
+ */
+ @Autowired
+ private OsAttributeServiceI attrService;
/**
* 閾炬帴绫诲瀷
@@ -130,11 +145,11 @@
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException {
+ public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException, PLException {
VciBaseUtil.alertNotNull(dataGridQuery,"鏌ヨ瀵硅薄",dataGridQuery.getBtmname(),"涓氬姟绫诲瀷",dataGridQuery.getTableDefineId());
//鍏堝垽鏂煡璇㈡ā鏉�
- UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid()).getTableDefineVO();
- String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())?dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()):tableDefineVO.getQueryTemplateName();
+ UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO();
+ 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());
@@ -171,14 +186,15 @@
queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
}else{
- btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname());
+ //btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname());
+ btmTypeVO = btmService.getBtmByName(dataGridQuery.getBtmname());
queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
}
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();
@@ -192,8 +208,9 @@
}
return loService.queryGridByScheme(linkTypeDataQuery);
}else {
- return boService.queryGridByScheme(queryTemplate,
+ DataGrid dataGrid = boService.queryGridByScheme(queryTemplate,
dataGridQuery.getConditionMap(), replaceMap, dataGridQuery.getPageHelper(), queryFieldList.stream().collect(Collectors.toList()));
+ return dataGrid;
}
//鐢熷懡鍛ㄦ湡鍦ㄥ叾涓煡璇㈠悗灏变細澶勭悊
//鏋氫妇涔熶細琚鐞嗕簡
@@ -207,10 +224,10 @@
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException {
+ 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());
@@ -237,13 +254,13 @@
queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
}else{
- btmTypeVO = btmService.getBtmById(formQuery.getBtmname());
+ btmTypeVO = btmService.getBtmByName(formQuery.getBtmname());
queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
}
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()) {
@@ -313,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;
}
@@ -337,9 +355,10 @@
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException {
+ public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception {
VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getBtmname(),"涓氬姟绫诲瀷鐨勪俊鎭�",treeQuery.getComponentOid(),"鏍戞墍鍦ㄧ殑缁勪欢鐨勪富閿�");
- UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid());
+ Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
+ UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){
throw new VciBaseException("鏍戠殑閰嶇疆淇℃伅娌℃湁鑾峰彇鍒�");
}
@@ -351,14 +370,21 @@
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<>());
}
if(treeQuery.getExtandParamsMap() != null){
treeQuery.getConditionMap().putAll(treeQuery.getExtandParamsMap());
}
- String parentFieldName = treeQuery.getParentFieldName();
+ String parentFieldName = treeQuery.getParentFieldName();
if(parentFieldName.contains(",")){
parentFieldName = parentFieldName.split(",")[0];
}
@@ -370,19 +396,19 @@
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())){
//杩欎釜鏄笟鍔$被鍨嬬殑鑷弬鐓�
//浠ュ墠鐨勫钩鍙版病鏈夊鑷弬鐓ц繖绉嶆湁鍏ㄩ儴鏌ヨ鐨�
- OsBtmTypeVO btmTypeVO = btmService.getBtmById(treeDefineVO.getBtmType());
+ OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType());
queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
@@ -401,7 +427,7 @@
if(StringUtils.isBlank(parentFieldNameAndValue) || !parentFieldNameAndValue.contains(",")){
throw new VciBaseException("閰嶇疆鐨勪俊鎭湁璇�傚湪娌℃湁鍦ㄨ彍鍗曟垨鑰呮潵婧愭暟鎹缃牴鑺傜偣鐨勬煡璇㈡ā鏉挎椂锛岃鍦ㄦ爲鐨勩�愬弬鐓ф爲銆戜笂璁剧疆涓婄骇瀛楁鐨勫悕绉板拰鏍硅妭鐐圭殑鏌ヨ鐨勫�笺�傛瘮濡倄xxx,yyy銆傚叾涓瓁xxx鏄笂绾у瓧娈佃嫳鏂囧悕绉�");
}
- parentFieldName= parentFieldNameAndValue.split(",")[0];
+ parentFieldName = parentFieldNameAndValue.split(",")[0];
String rootQueryValue = parentFieldNameAndValue.split(",")[1];
treeQuery.getConditionMap().put(parentFieldName,rootQueryValue);
replaceMap.put(parentFieldName,rootQueryValue);
@@ -436,8 +462,10 @@
return cbo2Trees(thisChildren, valueField, textField, parentFieldName, treeQuery.isShowCheckBox(), null);
}
}else{
- OsLinkTypeVO linkTypeVO = linkTypeService.getLinkTypeById(treeDefineVO.getLinkType());
- queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
+ //OsLinkTypeVO linkTypeVO = linkTypeService.getLinkTypeById(treeDefineVO.getLinkType());
+ LinkType linkType = platformClientUtil.getLinkTypeService().getLinkType(treeDefineVO.getLinkType());
+ //queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
+ queryFieldList.addAll(Arrays.asList(linkType.attributes));
queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
addQueryField(queryFieldList,valueField);
@@ -448,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())){
@@ -456,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)){
@@ -478,7 +506,7 @@
}
if(!CollectionUtils.isEmpty(rootCbos)){
if(StringUtils.isBlank(parentFieldName)){
- if(treeDefineVO.isOrientation()){
+ if(isOrientation){
parentFieldName = "t_oid";
}else{
parentFieldName = "f_oid";
@@ -498,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";
@@ -526,11 +554,74 @@
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());
}
}
+ }
+
+ /**
+ * 鑾峰彇鏁版嵁(鏍规嵁鏌ヨ妯℃澘鏌ヨ瀵硅薄锛岃繑鍥炵殑缁撴瀯鎸夌収ui瀹氫箟锛屽畾涔夌殑妯℃澘绫诲瀷杩斿洖)
+ * @param treeQuery 鏍戝舰鏌ヨ鏉′欢
+ * @return 鏍戝舰鏁版嵁
+ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception {
+ VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getComponentOid(),"褰撳墠缁勪欢鐨勪富閿�");
+ //1銆佸厛鏌ヨ椤甸潰瀹氫箟缁勪欢
+ Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
+ UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
+ if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){
+ throw new VciBaseException("鏈幏鍙栧埌鐣岄潰閰嶇疆淇℃伅锛�");
+ }
+ // 2銆佹牴鎹厤缃殑鏌ヨ妯℃澘鏌ヨ鏁版嵁(闇�瑕佽�冭檻鍏ㄩ潰涓�鐐�),
+ // 杩欏効鏍规嵁褰撳墠绫诲瀷鏉ヨ幏鍙栨槸浠�涔堢被鍨嬬殑鏌ヨ妯℃澘锛岀劧鍚庡仛瀵瑰簲鐨勬煡璇㈠鐞�
+ //TODO: 鏇挎崲鏍戝畾涔変笂鐨勬鍙嶅悜鏌ヨ灞炴�э紝鍥犱负姝e弽鍚戞煡璇㈡槸鐢遍摼鎺ョ被鍨嬫煡璇㈡ā鏉夸笂鎺у埗鐨�
+ UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO();
+ 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()?(!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();
+ if(parentFieldName.contains(",")){
+ parentFieldName = parentFieldName.split(",")[0];
+ }
+ queryFieldList.add("creator_name");
+ queryFieldList.add("lastmodifier_name");
+ OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType());
+ queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
+ queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
+
+ addQueryField(queryFieldList,valueField);
+ addQueryField(queryFieldList,textField);
+ List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap);
+
+ //3銆佹牴鎹笉鍚岀殑缁勪欢杩斿洖涓嶅悓鐨勬暟鎹被鍨嬶紙鏍戙�佸垪琛ㄣ�佹爲琛ㄣ�佽嚜瀹氫箟妯℃澘銆佽〃鍗曠瓑锛�
+ 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();
+ treeQueryObject.setValueField(valueField);
+ treeQueryObject.setTextField(textField);
+ treeQueryObject.setParentFieldName(parentFieldName);
+ treeQueryObject.setShowCheckBox(treeQuery.isShowCheckBox());
+ if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){
+ treeQueryObject.setQueryAllLevel(false);
+ }
+ //queryTreeForBO(rootTreeList,treeDefineVO.getQueryTemplateName(),queryFieldList,treeQueryObject);
+ }
+ return BaseResult.tree(rootTreeList);
}
/**
@@ -540,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);
@@ -569,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);
@@ -589,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);
@@ -614,7 +708,7 @@
if(rootList.size() == 0 && children.size() == 0){
return rootList;
}
- return Tree.getChildList(rootList,children);
+ return UIDataTree.getChildList(rootList,children);
}
/**
@@ -627,23 +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);
- if(!CollectionUtils.isEmpty(cbo2Map)){
+ Map<String,Object> cloMap = loService.clo2Map(clo);
+ Map<String,Object> cbo2Map = boService.cbo2Map(cbo);
+
+ /*if(!CollectionUtils.isEmpty(cbo2Map)){
cbo2Map.forEach((key,value)->{
- cloMap.put(parentFieldName + "." + key,value);
+ //TODO: 杩欏効涓哄暐瑕佹嫾鎺ヤ笂parentFieldName锛屽鑷村悗闈reemarker琛ㄨ揪寮忔棤娉曟纭浛鎹�
+ cloMap.put(/*parentFieldName + "." + key,value);
});
- }
+ }*/
tree.setOid(getValueByExpressForBOAndLO(cloMap,cbo2Map,valueField));
tree.setText(getValueByExpressForBOAndLO(cloMap,cbo2Map,textField));
if(StringUtils.isBlank(parentFieldName)){
@@ -655,8 +751,11 @@
tree.setParentId(ObjectTool.getLOAttributeValue(clo,parentFieldName));
}
}
-
- tree.setAttributes(cbo2Map);
+ //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]++;
tree.setChecked(showCheckBox);
@@ -668,7 +767,7 @@
}
});
- return Tree.getChildList(rootList,children);
+ return UIDataTree.getChildList(rootList,children);
}
/**
@@ -700,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);
@@ -718,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();
}
@@ -766,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)){
//鍓嶇疆浜嬩欢
@@ -976,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);
@@ -994,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);
@@ -1013,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);
});
@@ -1032,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);
});
@@ -1048,10 +1160,10 @@
* @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException {
+ 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);
@@ -1104,7 +1216,7 @@
* @param newVersion 鏂扮増娆�
* @return 鎵ц鐨勭粨鏋�
*/
- private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion){
+ private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException {
//鎵╁睍灞炴�х殑鍊�
Map<String, String> data = formDataDTO.getData();
Map<String,String> dataLow = new HashMap<>();
@@ -1160,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));
@@ -1313,11 +1425,11 @@
* @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException {
+ public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException {
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);
@@ -1354,7 +1466,7 @@
}
if(!CollectionUtils.isEmpty(releasedFileOids)){
releasedFileOids.forEach((oid,fileOids)->{
- fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
+ fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
});
}
//鍚庣疆浜嬩欢
@@ -1383,10 +1495,10 @@
* @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException {
+ 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);
@@ -1430,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);
@@ -1444,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("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽缓璁偍鍒锋柊鍚庨噸鏂版搷浣�");
}
@@ -1487,11 +1599,11 @@
* @throws VciBaseException 淇濆瓨鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException {
+ public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException {
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);
@@ -1521,7 +1633,7 @@
}
if(!CollectionUtils.isEmpty(releasedFileOids)){
releasedFileOids.forEach((oid,fileOids)->{
- fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
+ fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
});
}
//鍚庣疆浜嬩欢
@@ -1544,15 +1656,15 @@
* @throws VciBaseException 鏁版嵁琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
*/
@Override
- public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException {
+ 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;
if(deleteDataDTO.isCascade()){
//绾ц仈鍒犻櫎
- OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
+ OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName);
OsBtmTypeAttributeVO parentAttributeVO = btmTypeVO.getAttributes().stream().filter(s -> s.getReferBtmTypeId().equalsIgnoreCase(btmName)).findFirst().orElseGet(null);
if(parentAttributeVO != null){
//椤甸潰鍒嗛〉涓嶈兘鏄剧ず瓒呰繃1000
@@ -1585,7 +1697,12 @@
conditionMap.put(usedAttributeVO.getId(),QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
if(StringUtils.isNotBlank(usedAttributeVO.getPkBtmType())) {
if (boService.queryCount(usedAttributeVO.getPkBtmType(), conditionMap) > 0) {
- OsBtmTypeVO btmTypeVO = btmService.getBtmById(usedAttributeVO.getPkBtmType());
+ OsBtmTypeVO btmTypeVO = null;
+ try {
+ btmTypeVO = btmService.getBtmById(usedAttributeVO.getPkBtmType());
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
throw new VciBaseException("鏁版嵁鍦ㄣ��" + btmTypeVO.getName() + "銆戜腑鐨勫瓧娈礫" + usedAttributeVO.getName() + "]閲岃寮曠敤.涓嶈兘鍒犻櫎");
}
}else{
@@ -1633,7 +1750,7 @@
* @throws VciBaseException 鍙傛暟涓虹┖锛屽繀杈撻」缂哄け
*/
@Override
- public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException {
+ public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException {
//棣栧厛鍒ゆ柇瀵硅薄鏄惁涓虹┖
VciBaseUtil.alertNotNull(formLinkDataDTO,"娣诲姞鐨勬暟鎹璞�",formLinkDataDTO.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�",formLinkDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�");
if(formLinkDataDTO.getData() ==null){
@@ -1809,7 +1926,7 @@
* @param boData to鐨勬暟鎹�
* @return 鍖呭惈鐨勫璞�
*/
- private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData){
+ private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData) throws PLException {
Map<String,String> dataLow = new HashMap<>();
boData.forEach((key,value)->{
dataLow.put(key.toLowerCase(),value);
@@ -1929,14 +2046,15 @@
* @param newVersion 鏄惁鍗囩増娆�
* @return cbo瀵硅薄
*/
- public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion){
+ public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException {
String btmName = baseDataMap.get("btmname");
String oid = baseDataMap.get("oid");
// BusinessObject cbo = new BusinessObject();
BusinessObject cbo = new BusinessObject();
String copyfromversion = baseDataMap.get("copyfromversion");
- OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
- List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList());
+ //OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
+ OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName);
+ //List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList());
if(editFlag || newRevision || newVersion){
try {
cbo = platformClientUtil.getBOFService().readBusinessObject(editFlag?oid:copyfromversion,btmName);
@@ -2032,6 +2150,7 @@
if(StringUtils.isBlank(cbo.btName)){
cbo.btName = btmTypeVO.getId();
}
+
if(btmTypeVO.isRevisionFlag()){
//瑕佺鐞嗙増鏈�
if(btmTypeVO.isInputRevisionFlag() && StringUtils.isNotBlank(baseDataMap.getOrDefault("revisionvalue",""))){
@@ -2071,7 +2190,16 @@
// }
// }
setValueToCbo(dataLowMap,baseDataMap,cbo,editFlag);
-// cbo.setName(dataLowMap.get("name"));
+ //TODO:榛樿灞炴�ч渶瑕佹斁鍦╟bo澶栧眰
+ if(StringUtils.isNotBlank(baseDataMap.getOrDefault("id",""))){
+ cbo.id = baseDataMap.getOrDefault("id","");
+ }
+ if(StringUtils.isNotBlank(baseDataMap.getOrDefault("name",""))){
+ cbo.name = baseDataMap.getOrDefault("name","");
+ }
+ if(StringUtils.isNotBlank(baseDataMap.getOrDefault("description",""))){
+ cbo.description = baseDataMap.getOrDefault("description","");
+ }
return cbo;
}
@@ -2135,7 +2263,7 @@
* @throws VciBaseException 鍙傛暟涓虹┖锛屽繀杈撻」缂哄け
*/
@Override
- public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException {
+ public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException {
VciBaseUtil.alertNotNull(formLinkDataDTO,"淇敼鐨勬暟鎹璞�",formLinkDataDTO.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�",
formLinkDataDTO.getFormDefineId(),"琛ㄥ崟瀹氫箟鐨勭紪鍙�",formLinkDataDTO.getOid(),"涓婚敭",
formLinkDataDTO.getFoid(),"from绔富閿�",formLinkDataDTO.getToid(),"to绔富閿�");
@@ -2322,10 +2450,10 @@
* @return 鍒楄〃鏁版嵁
*/
@Override
- public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) {
+ public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) throws PLException {
checkReferConfig(referConfigVO);
//浣跨敤涓氬姟绫诲瀷鏌ヨ
- OsBtmTypeVO btmById = btmService.getBtmById(referConfigVO.getReferBo());
+ OsBtmTypeVO btmById = btmService.getBtmByName(referConfigVO.getReferBo());
if(referConfigVO.getConditionMap() == null){
referConfigVO.setConditionMap(new HashMap<>());
}
--
Gitblit v1.9.3