From a17f731ee4bcad459c184be5a7c3de6c3619443b Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 07 六月 2023 19:47:03 +0800 Subject: [PATCH] 代码整合 --- Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java | 558 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 518 insertions(+), 40 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java index 2cdc8d6..0fa9c0d 100644 --- a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java @@ -5,14 +5,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.vci.ubcs.code.feign.IMdmEngineClient; import com.vci.ubcs.code.webservice.entity.*; +import com.vci.ubcs.code.webservice.service.IGroupMdmInterService; import com.vci.ubcs.code.webservice.vo.*; import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.code.webservice.feign.MdmApplyGroupCodeProvider; import com.vci.ubcs.code.webservice.mapper.DockingPreAttrMappingMapper; -import com.vci.ubcs.code.webservice.service.*; import com.vci.ubcs.starter.exception.VciBaseException; -import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; @@ -23,7 +23,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - +import com.vci.ubcs.starter.revision.model.BaseModel; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -42,28 +42,33 @@ private String msg=""; - @Value("${docking.apply.unitCode:410-MDM}") + + @Value("${docking.apply.unitCode:41000}") public String dockingApplyUnitCode; + + @Value("${docking.apply.sysName:410-MDM}") + public String dockingApplySysName; + @Autowired(required = false) private MdmApplyGroupCodeProvider mdmApplyGroupCodeProvider; /*** * 闆嗗洟鍒嗙被鏈嶅姟 */ @Autowired(required = false) - private IDockingPreClassifyService dockingPreClassifyService; + private com.vci.ubcs.code.webservice.service.IDockingPreClassifyService dockingPreClassifyService; /*** * 鐢宠鍗曟湇鍔� */ @Autowired(required = false) - private IDockingPreApplyFormService dockingPreApplyFormService; + private com.vci.ubcs.code.webservice.service.IDockingPreApplyFormService dockingPreApplyFormService; /*** * 妯″瀷瑙嗗浘鍗曟湇鍔� */ @Autowired(required = false) - private IDockingPreViewModelService dockingPreViewModelService; + private com.vci.ubcs.code.webservice.service.IDockingPreViewModelService dockingPreViewModelService; /*** @@ -75,14 +80,17 @@ * 灞炴�у彇鍊艰寖鍥存湇鍔� */ @Autowired(required = false) - private IDockingPreAttrRangeService dockingPreAttrRangeService; + private com.vci.ubcs.code.webservice.service.IDockingPreAttrRangeService dockingPreAttrRangeService; /*** * 闆嗗洟灞炴�ф湇鍔� */ @Autowired(required = false) - private IDockingPreMetaAttrService dockingPreMetaAttrService; + private com.vci.ubcs.code.webservice.service.IDockingPreMetaAttrService dockingPreMetaAttrService; + + @Autowired(required = false) + private IMdmEngineClient mdmEngineClient; /*** * 涓绘暟鎹儚闆嗗洟鐢宠缂栫爜 * @param oids 闇�瑕佺敵璇风殑鏁版嵁涓婚敭鏁扮粍 @@ -90,25 +98,24 @@ * @return 杩斿洖缁撴灉淇℃伅 * @throws Exception */ + @Transactional(rollbackFor = VciBaseException.class) @Override - @Transactional public R applyGroupCode(String oids, String btmName) throws VciBaseException { try { List<BaseModel> updateCbos = new ArrayList<BaseModel>(); - List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>(); VciBaseUtil.alertNotNull(oids, "閫夋嫨鐨勬暟鎹�"); VciBaseUtil.alertNotNull(btmName, "涓氬姟绫诲瀷"); - //List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids)); - List<BaseModelVO> dataModelList = new ArrayList<>(); + R<List<BaseModel>> baseModelR =mdmEngineClient.selectByTypeAndOid(btmName,oids); + List<BaseModel> dataModelList= baseModelR.getData(); if (!CollectionUtils.isEmpty(dataModelList)) { DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO(); //鐢宠鍗曞拰鐢宠鍗曞璞″叧绯� Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); - Map<String, BaseModelVO> baseModelVOMap = new HashMap<String, BaseModelVO>(); + Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>(); //缁勭粐鏁版嵁 - dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap); + dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap); DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO); code = resultDataObject.getCode(); msg = resultDataObject.getMsg(); @@ -156,13 +163,13 @@ } //濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹� if (isEditDatas) { - if (baseModelVOMap.containsKey(applyId)) { - BaseModelVO baseModelVO = baseModelVOMap.get(applyId); - BaseModel baseModel = new BaseModel(); - BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel); + if (baseModelMap.containsKey(applyId)) { + BaseModel baseModel = baseModelMap.get(applyId); + BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel); DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); - baseModelVO.setId(customCoding); + //baseModel.setId(customCoding); + baseModel.getData().getOrDefault("groupCode",customCoding); updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code } } @@ -191,7 +198,7 @@ } //淇濆瓨琛ㄥ崟鏁版嵁 dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); - //mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁 + mdmEngineClient.insertBatchByType(btmName,updateCbos);//淇濆瓨鏁版嵁 } return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛"); }catch (VciBaseException e){ @@ -206,6 +213,7 @@ * @return 杩斿洖缁撴灉淇℃伅 * @throws Throwable */ + @Transactional(rollbackFor = VciBaseException.class) @Override public R receiveEditApply(String oids, String btmName) throws VciBaseException { List<BaseModel> updateCbos=new ArrayList<BaseModel>(); @@ -213,16 +221,16 @@ VciBaseUtil.alertNotNull(oids,"閫夋嫨鐨勬暟鎹�"); VciBaseUtil.alertNotNull(btmName,"涓氬姟绫诲瀷"); //List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids)); - List<BaseModelVO> dataModelList = new ArrayList<>(); + List<BaseModel> dataModelList = new ArrayList<>(); try { if (!CollectionUtils.isEmpty(dataModelList)) { DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO(); //鐢宠鍗曞拰鐢宠鍗曞璞″叧绯� Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); - Map<String, BaseModelVO> baseModelVOMap = new HashMap<String, BaseModelVO>(); + Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>(); //缁勭粐鏁版嵁 - dockingGroupDataVO = queryApplycodeDataObjects(2, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap); + dockingGroupDataVO = queryApplycodeDataObjects(2, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap); DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveEditApply(dockingGroupDataVO); code = resultDataObject.getCode(); msg = resultDataObject.getMsg(); @@ -270,13 +278,12 @@ } //濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹� if (isEditDatas) { - if (baseModelVOMap.containsKey(applyId)) { - BaseModelVO baseModelVO = baseModelVOMap.get(applyId); - BaseModel baseModel = new BaseModel(); - BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel); + if (baseModelMap.containsKey(applyId)) { + BaseModel baseModel = baseModelMap.get(applyId); + //BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel); DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); - DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); - baseModelVO.setId(customCoding); + // baseModel.setId(customCoding); + baseModel.getData().getOrDefault("groupCode",customCoding); updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code } } @@ -305,7 +312,7 @@ } //淇濆瓨琛ㄥ崟鏁版嵁 dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); - //mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁 + mdmEngineClient.insertBatchByType(btmName,updateCbos);//淇濆瓨鏁版嵁 } return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛"); }catch (VciBaseException e){ @@ -313,16 +320,466 @@ } } + /*** + * 鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨 + * @param groupClassifyId + * @return + * @throws VciBaseException + */ + @Override + public R queryClassModel(String groupClassifyId) throws Throwable { + log.info("鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨start"); + String message="鎵ц鎴愬姛锛�"; + try { + if (StringUtils.isBlank(groupClassifyId)) { + message = "鍙傛暟锛氶泦鍥㈠垎绫讳富閿紝涓虹┖!"; + log.info(message); + throw new Throwable(message); + } + if (StringUtils.isBlank(dockingApplySysName)) { + message = "鑾峰彇绯荤粺鏍囪瘑" + dockingApplySysName + "涓虹┖锛岃鏌ョ湅閰嶇疆锛�"; + log.info(message); + throw new Throwable(message); + } + DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO(); + dockingModelQueryVO.setClassId(groupClassifyId); + dockingModelQueryVO.setSysName(dockingApplySysName); + DockingQueryClassModelVO dockingQueryClassifyModelVO = mdmApplyGroupCodeProvider.queryClassModel(dockingModelQueryVO); + if (dockingQueryClassifyModelVO != null) { + int code = dockingQueryClassifyModelVO.getCode(); + message = dockingQueryClassifyModelVO.getMsg(); + if (code == 1) { + this.saveDatas(dockingQueryClassifyModelVO); + } else { + log.info(message); + throw new Throwable(message); + } + }else{ + message="鏈粠闆嗗洟鑾峰彇鍒颁换浣曟ā鍨嬩俊鎭�"; + log.info(message); + throw new Throwable(message); + } + return R.success(message); + }catch (Throwable e){ + e.printStackTrace();; + log.error("鑾峰彇鏁版嵁妯″瀷璇︾粏淇℃伅澶辫触"+e); + R.fail(message); + } + log.info("鑾峰彇闆嗗洟妯″瀷璇︾粏淇℃伅鎵ц淇濆瓨end"); + return R.success(message); + } + + /*** + * 浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨 + * @return + * @throws Throwable + */ + @Override + public R queryMdmModel() throws Throwable { + String message="鎵ц鎴愬姛锛�"; + log.info("浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨鎺ュ彛statr"); + try { + if (StringUtils.isBlank(dockingApplySysName)) { + message = "鑾峰彇绯荤粺鏍囪瘑" + dockingApplySysName + "涓虹┖锛岃鏌ョ湅閰嶇疆锛�"; + log.info(message); + throw new Throwable(message); + } + + DockingModelQueryVO dockingModelQueryVO = new DockingModelQueryVO(); + dockingModelQueryVO.setSysName(dockingApplySysName); + DockingQueryModelVO dockingQueryModelVO= mdmApplyGroupCodeProvider.queryMdmModel(dockingModelQueryVO); + if (dockingQueryModelVO != null) { + int code = dockingQueryModelVO.getCode(); + message = dockingQueryModelVO.getMsg(); + if (code == 1) { + List<DockingClassifyVO> dockingClassifyVOList=dockingQueryModelVO.getData(); + List<DockingPreClassify>dockingPreClassifyList=new ArrayList<>(); + dockingClassifyVOList.stream().forEach(dockingClassifyVO -> { + String id = StringUtils.isBlank(dockingClassifyVO.getId())?"":dockingClassifyVO.getId(); + String className = StringUtils.isBlank(dockingClassifyVO.getClassName())?"":dockingClassifyVO.getClassName(); + String classNumber = StringUtils.isBlank(dockingClassifyVO.getClassNumber())?"":dockingClassifyVO.getClassNumber(); + String nodeLink = StringUtils.isBlank(dockingClassifyVO.getNodeLink())?"":dockingClassifyVO.getNodeLink(); + String nodeLinkName = StringUtils.isBlank(dockingClassifyVO.getNodeLinkName())?"":dockingClassifyVO.getNodeLinkName(); + String pid = StringUtils.isBlank(dockingClassifyVO.getPid())?"":dockingClassifyVO.getPid(); + String version = StringUtils.isBlank(dockingClassifyVO.getVersion())?"":dockingClassifyVO.getVersion(); + DockingPreClassify dockingPreClassify= this.dockingPreClassifyService.getById(id); + + log.info("classify:-------------->闆嗗洟鍒嗙被涓绘満:"+id); + log.info("classify:-------------->闆嗗洟鍒嗙被鍚嶇О:"+className); + log.info("classify:--------------> 闆嗗洟鍒嗙被鐖惰妭鐐�:"+pid); + log.info("classify:-------------->閾炬帴:"+nodeLink); + log.info("classify:-------------->闆嗗洟鍒嗙被浠e彿:"+classNumber); + log.info("classify:-------------->閾炬帴鍚嶇О:"+nodeLinkName); + log.info("classify:-------------->閾炬帴鐗堟湰:"+version); + if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) { + DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY); + } else { + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify); + } + dockingPreClassify.setOid(id); + dockingPreClassify.setName(className); + dockingPreClassify.setPid(pid); + dockingPreClassify.setId(classNumber); + dockingPreClassify.setNodeLink(nodeLink); + dockingPreClassify.setNodeLinkName(nodeLinkName); + dockingPreClassify.setClassName(className); + dockingPreClassify.setVersionValue(version); + dockingPreClassifyList.add(dockingPreClassify); + }); + boolean res= dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyList); + if(res){ + R.success(message); + }else{ + message="淇濆瓨鍒嗙被涓绘ā鍨嬪け璐�"; + throw new Throwable(message); + } + } else { + log.info(message); + throw new Throwable(message); + } + }else{ + message="鏈粠闆嗗洟鑾峰彇鍒颁换浣曟ā鍨嬩俊鎭�"; + log.info(message); + throw new Throwable(message); + } + return R.success(message); + }catch (Throwable e){ + e.printStackTrace();; + log.error("鑾峰彇鏁版嵁妯″瀷澶辫触"+e); + R.fail(message); + } + log.info("浠庨泦鍥㈣幏鍙栦富妯″瀷淇℃伅鎵ц淇濆瓨鎺ュ彛end"); + return R.success(message); + } + + + + /*** + * 鏌ヨ鐢宠鍗曠姸鎬� + * @param dataOids + * @return 鎵ц缁撴灉 + */ + @Override + public R queryApplyState(String dataOids) throws VciBaseException { + + String message="鎵ц鎴愬姛锛�"; + log.info("鏌ヨ鐢宠鍗曠姸鎬佹帴鍙tatr"); + try { + VciBaseUtil.alertNotNull(dataOids,"鎵�鏌ョ敵璇峰崟鏁版嵁涓婚敭"); + VciBaseUtil.alertNotNull(dockingApplySysName,"绯荤粺鏍囪瘑閰嶇疆锛歞ocking.apply.unitCode"); + List<String> applyIdList=new ArrayList<>(); + List<DockingPreApplyForm> dockingPreApplyFormList= this.dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().in(DockingPreApplyForm::getDataOid, VciBaseUtil.str2List(dataOids))); + Map<String,DockingPreApplyForm> dockingPreApplyFormMap=new HashMap<>(); + dockingPreApplyFormList.stream().forEach(dockingPreApplyForm -> { + applyIdList.add(dockingPreApplyForm.getId()); + dockingPreApplyFormMap.put(dockingPreApplyForm.getId(),dockingPreApplyForm); + }); + + DockingModelQueryVO dockingModelQueryVO=new DockingModelQueryVO(); + dockingModelQueryVO.setApplyNums(VciBaseUtil.array2String(applyIdList.toArray(new String[]{}))); + dockingModelQueryVO.setSysName(dockingApplySysName); + DockingApplyFormQueryStatusVO dockingApplyFormQueryStatusVO=mdmApplyGroupCodeProvider.queryApplyState(dockingModelQueryVO); + + int code=dockingApplyFormQueryStatusVO.getCode(); + String mesg=dockingApplyFormQueryStatusVO.getMsg(); + if(code==1){ + List<DockingApplyFormStatusVO> dockingApplyFormStatusVOList=dockingApplyFormQueryStatusVO.getData(); + if(CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){ + for (DockingApplyFormStatusVO applyFormDataState : dockingApplyFormStatusVOList) { + String applyId=applyFormDataState.getApplyNum(); + String state= applyFormDataState.getFormState(); + String examineOpinion=applyFormDataState.getExamineOpinion(); + String jmsg=getCodeState(state)+"锛屾剰瑙侊細"+examineOpinion; + if(dockingPreApplyFormMap.containsKey(applyId)){ + DockingPreApplyForm applyFormObject=dockingPreApplyFormMap.get(applyId); + applyFormObject.setMsg(jmsg); + } + } + boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList); + if(res){ + R.success("鐢宠闆嗗洟鐮佺姸鎬佹煡璇㈡垚鍔�:"+mesg); + } + }else{ + throw new Throwable("娌℃湁鑾峰彇鍒扮浉鍏虫暟鎹俊鎭�"); + } + }else{ + throw new Throwable(mesg); + } + + }catch (Throwable e){ + e.printStackTrace();; + log.error("鑾峰彇鐢宠鍗曠姸鎬佸け璐�"+e); + throw new VciBaseException(message); + } + log.info("鏌ヨ鐢宠鍗曠姸鎬佹帴鍙nd"); + return R.success(message); + } + + /*** + * 鍚屾闆嗗洟妯″瀷淇℃伅 + * @param classifyId + * @param operationType + * @return 杩斿洖鎵ц缁撴灉 + * @throws VciBaseException + */ + @Override + public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException { + VciBaseUtil.alertNotNull(operationType,"闆嗘垚鎿嶄綔绫诲瀷"); + try { + if(operationType.equals("all")){ + return queryMdmModel(); + }else{ + VciBaseUtil.alertNotNull(classifyId,"闆嗗洟鍒嗙被涓婚敭"); + return queryClassModel(classifyId); + } + } catch (Throwable e) { + throw new VciBaseException(e.getMessage()); + } + } + + /*** + * 缁勭粐 淇濆瓨鏁版嵁鏂规硶 + * + * @param dockingQueryClassifyModelVO + * @return + * @throws Throwable + * @throws + * @throws Throwable + */ + private boolean saveDatas(DockingQueryClassModelVO dockingQueryClassifyModelVO) throws Throwable { + try { + DockingClassifyMainVO mainData = dockingQueryClassifyModelVO.getMainData(); + List<DockingClassifyVO> classList = mainData.getClassList(); + Map<String,List<DockingClassifyViewVO>>classInfoMap = mainData.getClassInfos(); + ////initVCIInvocationInfo("1"); + List<DockingPreClassify> dockingPreClassifyArrayList=new ArrayList<>(); + for (DockingClassifyVO jclassObject : classList) { + String id =StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId(); + String className = StringUtils.isBlank(jclassObject.getClassName())?"":jclassObject.getClassName(); + String pid = StringUtils.isBlank(jclassObject.getPid())?"":jclassObject.getPid(); + String nodeLink = StringUtils.isBlank(jclassObject.getNodeLink())?"":jclassObject.getNodeLink(); + String nodeLinkName = StringUtils.isBlank(jclassObject.getNodeLinkName())?"":jclassObject.getNodeLinkName(); + String classNumber = StringUtils.isBlank(jclassObject.getClassNumber())?"":jclassObject.getClassNumber(); + //鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + DockingPreClassify dockingPreClassify = dockingPreClassifyService.getById(id); + log.info("classify:-------------->闆嗗洟鍒嗙被涓绘満:"+id); + log.info("classify:-------------->闆嗗洟鍒嗙被鍚嶇О:"+className); + log.info("classify:--------------> 闆嗗洟鍒嗙被鐖惰妭鐐�:"+pid); + log.info("classify:-------------->閾炬帴:"+nodeLink); + log.info("classify:-------------->閾炬帴鍚嶇О:"+nodeLinkName); + + if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) { + DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY); + } else { + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify); + } + dockingPreClassify.setOid(id); + dockingPreClassify.setName(className); + dockingPreClassify.setPid(pid); + dockingPreClassify.setId(classNumber); + dockingPreClassify.setNodeLink(nodeLink); + dockingPreClassify.setNodeLinkName(nodeLinkName); + dockingPreClassify.setClassName(className); + dockingPreClassifyArrayList.add(dockingPreClassify); + // 鑾峰彇瀵瑰簲鐨勫垎绫昏鍥炬ā鍨� + if (classInfoMap.containsKey(id)) { + List<DockingClassifyViewVO> list = classInfoMap.get(id); + getVilewMode(jclassObject,list); + } + } + boolean res= dockingPreClassifyService.saveOrUpdateBatch(dockingPreClassifyArrayList); + return res; + } catch (Throwable e) { + e.printStackTrace(); + throw new Throwable("瀛樺偍瑙嗗浘妯″瀷鍑虹幇闂"); + } + } + + /*** + * 鑾峰彇鍒嗙被瑙嗗浘 + * + * @param jclassObject + * @throws Throwable + */ + private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list) + throws Throwable { + String nodeLinkName = jclassObject.getNodeLinkName(); + try { + String jclassId = com.alibaba.cloud.commons.lang.StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId(); + Map<String, DockingPreViewModel> jviewmodelMap = new HashMap<String, DockingPreViewModel>(); + //Map<String, String> condtionMa = new HashMap<String, String>(); + // condtionMa.put("jsourceclsfid", jclassId); + List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,false));// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + for (DockingPreViewModel dockingPreViewModel : dockingPreViewModelList) { + jviewmodelMap.put(dockingPreViewModel.getViewName(),dockingPreViewModel); + } + + for (DockingClassifyViewVO viewInfo : list) { + String viewName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getViewName())?"":viewInfo.getViewName(); + String impactList = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getImpactList())?"":viewInfo.getImpactList(); + log.info("VilewMode:-------------->瑙嗗浘鍚嶇О:"+viewName); + log.info("VilewMode:-------------->褰卞搷缂栫爜椤�:"+impactList); + log.info("VilewMode:--------------> 闆嗗洟鍒嗙被涓婚敭:"+jclassId); + List<DockingClassifyMetaAttrVO> metaList = viewInfo.getMetaList(); + DockingPreViewModel jviewModelObject = null; + if (jviewmodelMap.containsKey(viewName)) { + jviewModelObject = jviewmodelMap.get(viewName); + //褰卞搷缂栫爜椤圭殑鏁版嵁 + jviewModelObject.setImpactList(impactList); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(jviewModelObject); + } else { + jviewModelObject =new DockingPreViewModel(); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(jviewModelObject,MdmBtmTypeConstant.DOCKING_PRE_JVIEWMODEL); + jviewModelObject.setSourceClassifyId(jclassId);// 闆嗗洟鍒嗙被id + jviewModelObject.setViewName(viewName);// 闆嗗洟瑙嗗浘鍚嶇О + //褰卞搷缂栫爜椤圭殑鏁版嵁 + jviewModelObject.setImpactList(impactList); + dockingPreViewModelList.add(jviewModelObject); + } + // 鑾峰彇妯″瀷瑙嗗浘涓嬬殑灞炴�ч泦 + // String oid = jviewModelObject.getOid(); + List<DockingPreMetaAttr>allDockingPreMetaAttrList=new ArrayList<>(); + getMetaAttrObject(metaList, jclassId, jviewModelObject, "root",allDockingPreMetaAttrList); + //淇濆瓨妯″瀷瑙嗗浘灞炴�� + dockingPreMetaAttrService.saveOrUpdateBatch(allDockingPreMetaAttrList); + //淇濆瓨妯″瀷瑙嗗浘 + dockingPreViewModelService.saveOrUpdateBatch(dockingPreViewModelList); + } + } catch (Throwable e) { + e.printStackTrace(); + throw new Throwable("缁勭粐鍒嗙被" + nodeLinkName + "妯″瀷瑙嗗浘瀛樺偍鍑虹幇闂"); + } + } + + + /*** + * 鑾峰彇妯″瀷瑙嗗浘灞炴�� + * @throws Throwable + */ + private void getMetaAttrObject(List<DockingClassifyMetaAttrVO> metaList, + String jclassId, DockingPreViewModel jviewModelObject, String pid,List<DockingPreMetaAttr>allDockingPreMetaAttrList)throws Throwable { + try { + //// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + List<DockingPreMetaAttr> dockingPreMetaAttrList = dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda() + .eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid()) + .eq(DockingPreMetaAttr:: getPid,pid)); + Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter( + s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t)); + + for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) { + String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// 灞炴�у悕绉� + String englishName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getEnglishName())?"":dockingClassifyMetaAttrVO.getEnglishName();// 鑻辨枃鍚嶇О + String defaultValue = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getDefaultValue())?"":dockingClassifyMetaAttrVO.getDefaultValue(); + Integer metadataType =dockingClassifyMetaAttrVO.getMetadataType();// 绫诲瀷 + Integer necessaryConf = dockingClassifyMetaAttrVO.getNecessaryConf();// 鏄惁蹇呭~ + Map<String, String> range = dockingClassifyMetaAttrVO.getRange()==null?new HashMap<String, String>():dockingClassifyMetaAttrVO.getRange();// 鍙栧�艰寖鍥� + + log.info("metaAttr:-------------->灞炴�у悕绉�:"+chineseName); + log.info("metaAttr:-------------->鑻辨枃鍚嶇О:"+englishName); + log.info("metaAttr:-------------->榛樿鍊�:"+defaultValue); + log.info("metaAttr:--------------> 绫诲瀷:"+metadataType); + log.info("metaAttr:--------------> 鏄惁蹇呭~:"+necessaryConf); + DockingPreMetaAttr dockingPreMetaAttr = new DockingPreMetaAttr(); + if (jmetaattrMap.containsKey(englishName)) { + dockingPreMetaAttr = jmetaattrMap.get(englishName); + dockingPreMetaAttr.setChineseName(chineseName); + dockingPreMetaAttr.setDefaultValue(defaultValue); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreMetaAttr); + } else { + DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreMetaAttr,MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR); + dockingPreMetaAttr.setSourceClassifyId(jclassId);// 闆嗗洟鍒嗙被id + dockingPreMetaAttr.setViewModelId(jviewModelObject.getOid());// 闆嗗洟瑙嗗浘妯″瀷id + dockingPreMetaAttr.setChineseName(chineseName);// 灞炴�у悕绉� + dockingPreMetaAttr.setEnglishName(englishName);// 灞炴�у瓧娈� + dockingPreMetaAttr.setDefaultValue(defaultValue);// 灞炴�у悕绉� + dockingPreMetaAttr.setMetaDataType(metadataType);// 灞炴�х被鍨� + dockingPreMetaAttr.setNecesSaryConf(necessaryConf);// 灞炴�у繀濉」 + dockingPreMetaAttr.setPid(pid);// 鐖惰妭鐐筰d + } + if(range!=null&&range.size()>0){ + // 鑾峰彇灞炴�у�煎煙 + getRange(dockingPreMetaAttr, range); + } + /*** + * 鑾峰彇瀛愯妭鐐� + */ + DockingClassifyMetaAttrVO compositeMeta = dockingClassifyMetaAttrVO.getCompositeMeta(); + if (compositeMeta != null) { + pid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingPreMetaAttr.getOid())?"":dockingPreMetaAttr.getOid();// 褰撳墠oid + List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>(); + childMetaList.add(compositeMeta); + getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList); + } + + } + + } catch (Throwable e) { + e.printStackTrace(); + log.error("缁勭粐妯″瀷瑙嗗浘"+ jviewModelObject.getViewName() + + "灞炴�у瓨鍌ㄥ嚭鐜伴棶棰�" + e); + throw new Throwable("缁勭粐妯″瀷瑙嗗浘"+ jviewModelObject.getViewName() + + "灞炴�у瓨鍌ㄥ嚭鐜伴棶棰�" + e); + } + } + + /** + * @throws Throwable + * * 鑾峰彇鍊煎煙 + * @param metaAttrObject + * @param range + * @throws + */ + private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable { + String metaAttrOid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// 灞炴�х殑oid + String jchinesename = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName(); + Map<String, DockingPreAttrRange> rangeMap = new HashMap<>(); + try { + Map<String, String> condtionMa = new HashMap<String, String>(); + condtionMa.put("jmetalistid", metaAttrOid); + List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda() + .eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// 鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄 + rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t)); + + for (String rangeKey : range.keySet()) { + DockingPreAttrRange rangeObject = new DockingPreAttrRange(); + String keyValue = com.alibaba.cloud.commons.lang.StringUtils.isBlank(range.get(rangeKey))?"":range.get(rangeKey); + log.info("range:-------------->鏄剧ず鍊�"+rangeKey+",鍐呴儴鍊�"+keyValue); + if (rangeMap.containsKey(rangeKey)) { + rangeObject = rangeMap.get(rangeKey); + rangeObject.setNumTextValue(keyValue); + rangeObject.setNumText(rangeKey); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(rangeObject); + } else { + DefaultAttrAssimtUtil.addDefaultAttrAssimt(rangeObject,MdmBtmTypeConstant.DOCKING_PRE_JRANGE); + rangeObject.setNumTextValue(keyValue); + rangeObject.setNumText(rangeKey); + rangeObject.setTs(rangeObject.getLastModifyTime()); + rangeObject.setMetaListId(metaAttrOid); + log.info("range:-------------->灞炴�у唴閮ㄥ��:"+metaAttrOid); + log.info("range:-------------->鏃堕棿:"+rangeObject.getLastModifyTime()); + jmetaattrList.add(rangeObject); + } + } + dockingPreAttrRangeService.saveOrUpdateBatch(jmetaattrList); + } catch (Throwable e) { + e.printStackTrace(); + log.info("缁勭粐灞炴�э細銆�" + jchinesename + "銆戝�煎煙鍑虹幇闂"+ e); + throw new Throwable("缁勭粐灞炴�э細銆�" + jchinesename + "銆戝�煎煙鍑虹幇闂"+ e); + } + } + + + /** * 缁勭粐鏁版嵁 * */ - private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModelVO> codeWupins,Map<String,DockingPreApplyForm> addDockingPreApplyFormMap,Map<String,DockingPreApplyForm> editDockingPreApplyFormMap,Map<String,BaseModelVO> codeWupinMap) throws VciBaseException{ + private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel> codeWupins,Map<String,DockingPreApplyForm> addDockingPreApplyFormMap,Map<String,DockingPreApplyForm> editDockingPreApplyFormMap,Map<String,BaseModel> codeWupinMap) throws VciBaseException{ try { String curUserName = AuthUtil.getUser().getUserName(); //鐢宠鐨勬暟鎹� List<DockingMainData> mainDataList=new ArrayList<DockingMainData>(); - for (BaseModelVO dataBusinessObject : codeWupins) { + for (BaseModel dataBusinessObject : codeWupins) { String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid",""); String btmName = dataBusinessObject.getBtmname(); @@ -363,7 +820,7 @@ DockingMainData mainData = new DockingMainData(); mainData.setApplyEntId(dockingApplyUnitCode);//鐢宠鍗曚綅浠g爜 mainData.setApplyId(apllyCode);//鐢宠鍗曞彿 - mainData.setClassName(dockingPreClassify.getGetNodeLinkName());//鍒嗙被鍚嶇О + mainData.setClassName(dockingPreClassify.getNodeLinkName());//鍒嗙被鍚嶇О mainData.setCreateBy(curUserName);// mainData.setSecretLevel("鍐呴儴");//瀵嗙骇锛岄粯璁や负鍐呴儴 mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//鑾峰彇瑙嗗浘妯″瀷 @@ -371,7 +828,7 @@ } //鏍规嵁鏁版嵁妯″瀷锛岀粍缁囨墍闇�瑕佹暟鎹� DockingGroupDataVO postParameters=new DockingGroupDataVO(); - postParameters.setSysName("420-CODE");//绯荤粺鏍囪瘑 + postParameters.setSysName(dockingApplySysName);//绯荤粺鏍囪瘑 postParameters.setMainData(mainDataList);// return postParameters; } catch (Throwable e) { @@ -386,7 +843,7 @@ * @param dataBusinessObject * @throws VciBaseException */ - private List<DockingViewVO>getviewInfos(int type, DockingPreClassify dockingPreClassify, BaseModelVO dataBusinessObject) throws Throwable{ + private List<DockingViewVO>getviewInfos(int type, DockingPreClassify dockingPreClassify, BaseModel dataBusinessObject) throws Throwable{ List<DockingViewVO> viewInfoList=new ArrayList<>(); String jclassOid= dockingPreClassify.getOid(); List<DockingPreViewModel> dockingPreViewModels=new ArrayList<>(); @@ -415,16 +872,13 @@ * @return * @throws VciBaseException */ - private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModelVO dataBusinessObject) throws Throwable{ + private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModel dataBusinessObject) throws Throwable{ //鏋勯�犳ā鍨嬭鍥炬暟鎹� List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>(); String oid = dockingPreViewModel.getOid(); Map<String,String> dataValueMap=dataBusinessObject.getData(); String codeClassifyId=dataValueMap.get("codeclsfid"); Map<String,String>conditionsMap=new HashMap<String, String>(); - - - List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda() .eq(DockingPreAttrMapping::getSourceClassifyId, jclassOid).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId)); if(CollectionUtils.isEmpty(dockingPreAttrMappingList)) { @@ -547,4 +1001,28 @@ } return value; } + + private String getCodeState(String formState){ + String msg=""; + if("1".equals(formState)){ + msg="闆嗗洟瀹℃牳涓�"; + }else if("2".equals(formState)){ + msg="椹冲洖"; + }else if("3".equals(formState)){ + msg="闆嗗洟瀹℃牳涓�"; + }else if("4".equals(formState)){ + msg="瀹℃牳缁撴潫锛岃祴鐮佸け璐�"; + }else if("5".equals(formState)){ + msg="瀹℃牳缁撴潫锛岃祴鐮佹垚鍔�"; + }else if("6".equals(formState)){ + msg="寰�301璧嬬爜"; + }else if("7".equals(formState)){ + msg="宸茶祴鐮�"; + }else if("8".equals(formState)){ + msg="宸茶祴鐮侊紙娌跨敤锛�"; + }else if("9".equals(formState)){ + msg="瀹℃牳涓�"; + } + return msg; + } } -- Gitblit v1.9.3