From af73b1917e58e37daaa3e63f5303da1056cedfa3 Mon Sep 17 00:00:00 2001
From: wang1 <844966816@qq.com>
Date: 星期四, 13 七月 2023 18:18:26 +0800
Subject: [PATCH] 修复生命周期调试异常,整理流程代码

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 100 insertions(+), 20 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 0443438..2d2d0ef 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -22,6 +22,9 @@
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
 import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
 import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.entity.ProcessStageAttr;
+import com.vci.ubcs.flow.core.feign.IMDMIFlowAttrClient;
+import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
 import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
 import com.vci.ubcs.omd.cache.EnumCache;
 import com.vci.ubcs.omd.feign.*;
@@ -278,6 +281,11 @@
      * 鏇挎崲瀛楃
      */
     public static final String SPECIAL_CHAR = "VCI";
+	/**
+	 * 涓绘暟鎹祦绋嬮樁娈垫湇鍔�
+	 */
+	@Autowired
+	private IMDMIFlowAttrClient imdmiFlowAttrClient;
 //	@Autowired
 //	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
 
@@ -412,7 +420,7 @@
         switchDateAttrOnOrder(templateVO, orderDTO);
         //9.鐢熸垚缂栫爜鐨勪俊鎭�
 //		ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
-        BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
+        BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId());
 //		//榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
 //		//璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
         copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
@@ -650,7 +658,7 @@
 
         if (!CollectionUtils.isEmpty(conditionMap)) {
 //			final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
-            R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid()));
+            R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
 //				String referTable = VciBaseUtil.getTableName(referVO.getReferType());
             if (!listR.isSuccess() || listR.getData().size() == 0) {
                 throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
@@ -1275,7 +1283,7 @@
             conditionMap.putAll(andConditionMap);
             PageHelper pageHelper = new PageHelper(-1);
             pageHelper.addDefaultDesc("id");
-            return queryGrid(fullInfoBO.getTopClassifyVO().getBtmtypeid(), templateVO, conditionMap, pageHelper);
+            return queryGrid(fullInfoBO.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, pageHelper);
         }
         return new DataGrid<>();
     }
@@ -1296,11 +1304,11 @@
             //璇存槑宸茬粡瀛樺湪
             return resembleRuleService.getObjectByOid(currentClassifyVO.getCodeResembleRuleOid());
         }
-        if (StringUtils.isBlank(currentClassifyVO.getParentcodeclassifyoid())) {
+        if (StringUtils.isBlank(currentClassifyVO.getParentCodeClassifyOid())) {
             return null;
         }
         Map<String, CodeClassifyVO> classifyVOMap = fullInfoBO.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
-        return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentcodeclassifyoid(), null));
+        return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentCodeClassifyOid(), null));
     }
 
     /**
@@ -2100,7 +2108,7 @@
 //		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
         //鎵句笟鍔$被鍨嬶紝鐒跺悗浣跨敤涓婚敭鍘昏幏鍙栨暟鎹簱閲岀殑鏁版嵁
-        List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), orderDTO.getOid());
+        List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), orderDTO.getOid());
 
         if (CollectionUtils.isEmpty(cbos)) {
             throw new VciBaseException(DATA_OID_NOT_EXIST);
@@ -2154,7 +2162,7 @@
 //		cbo.getData().putAll(orderDTO.getData());
         cbo.setLastModifyTime(new Date());
         cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
-        updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), Collections.singletonList(cbo));
+        updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), Collections.singletonList(cbo));
         batchSaveSelectChar(templateVO, Collections.singletonList(cbo));
     }
 
@@ -2179,7 +2187,7 @@
         oidCollection.stream().forEach(oids -> {
             Map<String, String> conditionMap = new HashMap<>();
 //			conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
-            List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), oids);
+            List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), oids);
 //				boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
             cboList.addAll(cbos);
         });
@@ -2205,10 +2213,10 @@
 //		batchCBO.getDeleteCbos().addAll(cboList);
 //		WebUtil.setPersistence(false);
 //		batchCBO.copyFromOther(
-        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList());
+        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
 //		baseMapper.deleteBatchIds(cboList);
         //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
-        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid()));
+        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId()));
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
@@ -2275,10 +2283,10 @@
         //4. 鏌ヨ鐨勬椂鍊欙紝鐩存帴浣跨敤codeclsfpath鏉ユ煡璇�
         CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(codeClassifyOid);
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
-        if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmtypeid())) {
+        if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmTypeId())) {
             throw new VciBaseException("褰撳墠涓婚搴撳垎绫绘病鏈夐《灞傚垎绫伙紝鎴栬�呴《灞傚垎绫绘病鏈夎缃笟鍔$被鍨�");
         }
-        String btmTypeId = topClassifyVO.getBtmtypeid();
+        String btmTypeId = topClassifyVO.getBtmTypeId();
         if (StringUtils.isBlank(btmTypeId)) {
             return new DataGrid<>("杩欎釜鍒嗙被鎵�灞為《灞傚垎绫绘病鏈夋坊鍔犱笟鍔$被鍨�");
         }
@@ -2345,7 +2353,7 @@
             throw new VciBaseException(DATA_OID_NOT_EXIST);
         }
 
-        List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
+        List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
 //		cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")");
 //		List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap);
         if (CollectionUtils.isEmpty(cboList)) {
@@ -2401,7 +2409,7 @@
             batchSaveSelectChar(firstTemplateVO, cboList);
         });
 //		boService.persistenceBatch(batchCBO);
-        updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), updateList);
+        updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), updateList);
         return R.success("鎿嶄綔鎴愬姛锛�");
     }
 
@@ -2577,7 +2585,7 @@
     public CodeRuleVO getCodeRuleByClassifyOid(String codeClassifyOid) {
         VciBaseUtil.alertNotNull(codeClassifyOid, "鍒嗙被鐨勪富閿�");
         CodeClassifyVO classifyVO = classifyService.getObjectByOid(codeClassifyOid);
-        String codeRuleOid = classifyVO.getCoderuleoid();
+        String codeRuleOid = classifyVO.getCodeRuleOid();
         if (StringUtils.isBlank(codeRuleOid)) {
             //寰�涓婃壘
             CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
@@ -2597,8 +2605,8 @@
     public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
         //寰�涓婃壘
         String codeRuleOid = "";
-        if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
-            codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
+        if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCodeRuleOid())) {
+            codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCodeRuleOid();
         } else {
             if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
                 //璇存槑宸茬粡鏄渶楂樺眰绾�,
@@ -2608,8 +2616,8 @@
             //浠庢渶楂樼殑level寮�濮嬭幏鍙�
             for (int i = 0; i < parentClassifyVOList.size(); i++) {
                 CodeClassifyVO record = parentClassifyVOList.get(i);
-                if (StringUtils.isNotBlank(record.getCoderuleoid())) {
-                    codeRuleOid = record.getCoderuleoid();
+                if (StringUtils.isNotBlank(record.getCodeRuleOid())) {
+                    codeRuleOid = record.getCodeRuleOid();
                     break;
                 }
             }
@@ -2632,7 +2640,7 @@
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
         //涓轰簡闃叉妯℃澘涓婄殑涓氬姟绫诲瀷涓庡垎绫讳笂涓嶅搴�
         CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid());
-        String btmId = topClassifyVO.getBtmtypeid();
+        String btmId = topClassifyVO.getBtmTypeId();
         //鏌ヨ鏁版嵁
         Map<String, String> conditionMap = new HashMap<>();
         conditionMap.put("t.oid", oid);
@@ -2838,6 +2846,51 @@
         wrapperResemble(templateVO, uiInfoVO);
         return uiInfoVO;
     }
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栬〃鏍肩殑瀹氫箟-ubcs鍚庝慨鏀硅幏鍙栨祦绋嬮樁娈电啛鎮夎幏鍙栨柟娉�
+	 * @param codeClassifyOid
+	 * @param templateId
+	 * @param taskId
+	 * @param modelKey
+	 * @return
+	 */
+	public MdmUIInfoVO getTableDefineByClassifyOid_v2(String codeClassifyOid,String templateId,String taskId,String modelKey) {
+		MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
+		CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
+		uiInfoVO.setTemplateVO(templateVO);
+		UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO, true);
+		R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
+		List<ProcessStageAttrVO> stageAttrVOS = r.getData();
+		List<String> attrList = new ArrayList<>();
+		stageAttrVOS.stream().forEach(attr->{
+			attrList.add(attr.getAttrId());
+		});
+		uiTableDefineVO.getCols().stream().forEach(list -> {
+			List<UITableFieldVO> visiableTableField = new ArrayList<>();
+			visiableTableField = list.stream().filter(col ->
+				attrList.stream().anyMatch(s -> StringUtils.equalsIgnoreCase(col.getField(), s) ||
+					(StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s))
+					|| (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s))
+				)).collect(Collectors.toList());
+
+			visiableTableField.stream().forEach(vo -> {
+				uiTableDefineVO.setHasEditor(true);
+				if ("refer".equalsIgnoreCase(vo.getFieldType())) {
+					setReferConfig2EditConfig(vo);
+				} else if ("combox".equalsIgnoreCase(vo.getFieldType())) {
+					setComboxConfig2EditConfig(vo);
+				} else if (StringUtils.isNotBlank(vo.getDateFormate())) {
+					vo.setEdit("date");
+				} else {
+					vo.setEdit(vo.getFieldType());
+				}
+			});
+		});
+		uiInfoVO.setTableDefineVO(uiTableDefineVO);
+		wrapperResemble(templateVO, uiInfoVO);
+		return uiInfoVO;
+	}
 
     /**
      * 妯℃澘灞炴�ц浆鎹负琛ㄦ牸瀹氫箟鐨勪俊鎭�
@@ -3099,6 +3152,33 @@
         }
         return uiInfoVO;
     }
+    @Override
+	public MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid, String functionId,String templateId,String taskId,String modelKey){
+//		MdmUIInfoVO uiInfoVO = getTableDefineByClassifyOid_v2(codeClassifyOid,templateId,taskId,modelKey);
+		MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
+		R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
+		List<ProcessStageAttrVO> stageAttrVOS = r.getData();
+		Set<String> attrSet = new HashSet<>();
+		stageAttrVOS.stream().forEach(attr->{
+			attrSet.add(attr.getAttrId());
+		});
+
+		try {
+
+			UITableDefineVO tableDefineVO = uiInfoVO.getTableDefineVO();
+			List<List<UITableFieldVO>> tableFieldVOs = tableDefineVO.getCols();
+			List<UITableFieldVO> uiTableFieldVOS = tableFieldVOs.get(0);
+			uiTableFieldVOS.stream().forEach(ui->{
+//				if(!attrSet.contains(ui.getField())){
+//					ui.setEdit(null);
+//					ui.setEditConfig(null);
+//				}
+			});
+		}catch (Exception e){
+			throw new ServiceException("妯℃澘娌℃湁瀹氫箟灞炴�э紝璇诲彇琛ㄥご澶辫触!");
+		}
+		return uiInfoVO;
+	}
 
     /**
      * 浣跨敤鍒嗙被涓婚敭鑾峰彇宸ュ叿鏍忎腑鐨勬寜閽俊鎭�

--
Gitblit v1.9.3