From d2008fc35a45ff00b0f37939a13b792ab12e8c6f Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 21 十一月 2024 10:25:05 +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 | 175 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 128 insertions(+), 47 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 8f0443d..e07bba7 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,15 @@
package com.vci.web.service.impl;
-import com.vci.client.common.providers.ClientServiceProvider;
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.lcm.LifeCycle;
-import com.vci.file.pagemodel.VciFileObjectVO;
+import com.vci.dto.*;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus;
import com.vci.omd.utils.ObjectTool;
+import com.vci.pagemodel.*;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.web.annotation.bus.VciChangeDataAfter;
import com.vci.starter.web.annotation.bus.VciChangeDataBefore;
@@ -21,10 +22,9 @@
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
-import com.vci.web.dto.*;
+import com.vci.web.enumpck.DeleteTypeEnum;
import com.vci.web.enumpck.UIFieldTypeEnum;
import com.vci.web.enumpck.UITreeLoadTypeEnum;
-import com.vci.web.pageModel.*;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UILinkTypeDataQuery;
@@ -42,7 +42,8 @@
import java.util.*;
import java.util.stream.Collectors;
-import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
+import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
+
/**
* UI涓婄殑鏁版嵁鏌ヨ
@@ -69,6 +70,11 @@
*/
@Autowired
private OsBtmServiceI btmService;
+ /**
+ * 灞炴�ф湇鍔�
+ */
+ @Autowired
+ private OsAttributeServiceI attrService;
/**
* 閾炬帴绫诲瀷
@@ -130,10 +136,10 @@
* @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();
+ UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO();
String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())?dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()):tableDefineVO.getQueryTemplateName();
if(StringUtils.isBlank(queryTemplate)){
//璇存槑娌℃湁璁剧疆鏌ヨ妯℃澘锛岄渶瑕佺湅鐪嬪湪杩欎釜琛ㄦ牸鎵�鍦ㄧ殑缁勪欢鏈夋病鏈夎缃�
@@ -171,7 +177,8 @@
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());
}
@@ -192,8 +199,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,7 +215,7 @@
* @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();
@@ -237,7 +245,7 @@
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");
@@ -337,9 +345,10 @@
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
@Override
- public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException {
+ public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException {
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("鏍戠殑閰嶇疆淇℃伅娌℃湁鑾峰彇鍒�");
}
@@ -382,7 +391,7 @@
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());
@@ -531,6 +540,62 @@
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 VciBaseException, PLException {
+ 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銆佹牴鎹厤缃殑鏌ヨ妯℃澘鏌ヨ鏁版嵁(闇�瑕佽�冭檻鍏ㄩ潰涓�鐐�),
+ // 杩欏効鏍规嵁褰撳墠绫诲瀷鏉ヨ幏鍙栨槸浠�涔堢被鍨嬬殑鏌ヨ妯℃澘锛岀劧鍚庡仛瀵瑰簲鐨勬煡璇㈠鐞�
+
+ 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());
+ 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 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<Tree> 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);
}
/**
@@ -762,7 +827,7 @@
* @throws VciBaseException 閰嶇疆鎴栬�呮槸璋冪敤涓嶆垚鍔熺殑鏃跺�欙紝浼氭姏鍑哄紓甯�
*/
@Override
- public BaseResult callPreEvent(BaseModelDTOList baseModelDTOList,BaseLinkModelDTOList baseLinkModelDTOList, String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{
+ public BaseResult callPreEvent(BaseModelDTOList baseModelDTOList, BaseLinkModelDTOList baseLinkModelDTOList, String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{
if((baseModelDTOList == null || CollectionUtils.isEmpty(baseModelDTOList.getDataList())) && (baseLinkModelDTOList == null || CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))){
return BaseResult.success();
}
@@ -1048,7 +1113,7 @@
* @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());
@@ -1104,7 +1169,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<>();
@@ -1313,7 +1378,7 @@
* @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();
@@ -1364,7 +1429,7 @@
}catch (Throwable e){
//璇存槑鍚庣疆浜嬩欢鍑虹幇浜嗛敊璇紝閭d箞灏遍渶瑕佸垹闄や互鍓嶇殑杩欐潯鏁版嵁
try {
- platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(afterBOs.toArray(new BusinessObject[0]),1);
+ platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(afterBOs.toArray(new BusinessObject[0]),DeleteTypeEnum.OID_AND_TS.getValue());
} catch (PLException vciError) {
throw WebUtil.getVciBaseException(vciError);
}
@@ -1383,7 +1448,7 @@
* @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());
@@ -1487,7 +1552,7 @@
* @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();
@@ -1544,7 +1609,7 @@
* @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();
List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList());
@@ -1552,7 +1617,7 @@
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 +1650,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 +1703,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){
@@ -1684,13 +1754,6 @@
throw new VciBaseException(formLinkDataDTO.isDirection()?"from绔�":"to绔�" + "鐨勪笟鍔$被鍨嬩负绌�");
}
- //鏌ヨfrom绔殑
- BusinessObject fromCbo = new BusinessObject();
- try {
- fromCbo = platformClientUtil.getBOFService().readBusinessObject(fromOid,fromBtmName);
- } catch (PLException vciError) {
- throw WebUtil.getVciBaseException(vciError);
- }
String finalPrefix = prefix;
formLinkDataDTO.getData().forEach((key, value)->{
if(key.toLowerCase().startsWith(finalPrefix)){
@@ -1711,10 +1774,12 @@
return BaseResult.fail(resultClo.getMsg(),resultClo.getMsgObjs());
}
clo = resultClo.getObj();
+ if(StringUtils.isBlank(clo.toOid)){
+ clo.toOid = toCbo.oid;
+ }
//鎵ц淇濆瓨
BusinessObject[] bos = new BusinessObject[1];
ObjectTool.dealBusinessObjectNullValue(toCbo);
- ObjectTool.dealLinkObjectNullValue(clo);
bos[0] = toCbo;
try {
platformClientUtil.getBOFService().createBusinessObjectWithLink(bos,clo);
@@ -1769,7 +1834,6 @@
if(editFlag){
try {
LinkObject linkObject = platformClientUtil.getBOFService().readLinkObjectById(formLinkDataDTO.getOid(), formLinkDataDTO.getLinkType());
- clo = new LinkObject();
clo = linkObject;
} catch (PLException vciError) {
throw WebUtil.getVciBaseException(vciError);
@@ -1782,6 +1846,14 @@
clo.createTime = System.currentTimeMillis();
clo.ts = System.currentTimeMillis();
clo.ltName = formLinkDataDTO.getLinkType();
+ clo.toOid = formLinkDataDTO.getToid();
+ clo.toNameOid = formLinkDataDTO.getTnameoid();
+ clo.toRevOid = formLinkDataDTO.getTrevisionoid();
+ clo.toBTName = formLinkDataDTO.getTbtmname();
+ clo.fromOid = formLinkDataDTO.getFoid();
+ clo.fromBTName = formLinkDataDTO.getFbtmname();
+ clo.fromNameOid = formLinkDataDTO.getFnameoid();
+ clo.fromRevOid = formLinkDataDTO.getFrevisionoid();
}
//
LinkObject finalClo = clo;
@@ -1807,7 +1879,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);
@@ -1927,14 +1999,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);
@@ -2030,6 +2103,7 @@
if(StringUtils.isBlank(cbo.btName)){
cbo.btName = btmTypeVO.getId();
}
+
if(btmTypeVO.isRevisionFlag()){
//瑕佺鐞嗙増鏈�
if(btmTypeVO.isInputRevisionFlag() && StringUtils.isNotBlank(baseDataMap.getOrDefault("revisionvalue",""))){
@@ -2040,7 +2114,7 @@
if (ruleVO == null || StringUtils.isBlank(ruleVO.getOid())) {
throw new VciBaseException("{0}閲岀殑鐗堟湰瑙勫垯璁剧疆寰椾笉姝g‘锛屽湪绯荤粺涓病鏈夋壘鍒皗1}杩欎釜鐗堟湰瑙勫垯", new String[]{btmTypeVO.getName(), btmTypeVO.getRevisionRuleId()});
}
- cbo.revisionValue = ruleVO.getStartCode();
+ cbo.revisionValue = ruleVO.getInitialValue();
}
if (StringUtils.isBlank(cbo.nameoid)) {
cbo.nameoid = VciBaseUtil.getPk();
@@ -2069,7 +2143,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;
}
@@ -2133,7 +2216,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绔富閿�");
@@ -2158,8 +2241,6 @@
String prefix = formLinkDataDTO.isDirection()?LO_FROM_PREFIX:LO_TO_PREFIX;
String toOid = formLinkDataDTO.isDirection()?formLinkDataDTO.getFoid():formLinkDataDTO.getToid();
String toBtmName = formLinkDataDTO.isDirection()?formLinkDataDTO.getFbtmname():formLinkDataDTO.getTbtmname();
- String fromOid = formLinkDataDTO.isDirection()?formLinkDataDTO.getToid():formLinkDataDTO.getFoid();
- String fromBtmName = formLinkDataDTO.isDirection()?formLinkDataDTO.getTbtmname():formLinkDataDTO.getFbtmname();
Map<String,String> boData = new HashMap<>();
Map<String,String> loData = new HashMap<>();
@@ -2296,7 +2377,7 @@
if(deleteLinkDataDTO.isDeleteFromData()){
fromBtmDataGroups.forEach((btm,cbos)->{
try{
- platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),1);
+ platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]), DeleteTypeEnum.OID_AND_TS.getValue());
}catch (PLException vciError) {
throw WebUtil.getVciBaseException(vciError);
}
@@ -2305,7 +2386,7 @@
if(deleteLinkDataDTO.isDeleteToData()){
toBtmDataGroups.forEach((btm,cbos)->{
try{
- platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),1);
+ platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.toArray(new BusinessObject[0]),DeleteTypeEnum.OID_AND_TS.getValue());
}catch (PLException vciError) {
throw WebUtil.getVciBaseException(vciError);
}
@@ -2322,10 +2403,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