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