From d50dec2d9b92c103134ae4e313c7bbbe5c2f4432 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 24 四月 2024 16:39:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java | 75 ++++++++++++++++++++++++++++++------- 1 files changed, 61 insertions(+), 14 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java index 51b5770..6bb3dad 100644 --- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java +++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java @@ -14,6 +14,7 @@ import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.starter.util.SaveLogUtil; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -41,8 +42,8 @@ @Slf4j public class MdmInterJtClient implements IMdmInterJtClient { - @Value("${docking.apply.partCoe:10}") - public String partCoe; + @Value("${docking.apply.partCode:10}") + public String partCode; /** * 闆嗗洟鐢宠鍗曟湇鍔� @@ -135,7 +136,6 @@ log.info("鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹� start"); try { Map<String,List<BaseModel>> editObjectMap = new HashMap<>(); - List<DockingPreApplyForm> dockingPreApplyFormList = new ArrayList(); //String classId = javaObject.getClassId(); //String sysName = javaObject.getSysName(); @@ -172,7 +172,8 @@ } else if ("9".equals(formState)) { msg = "瀹℃牳涓�"; } - msg = Func.isNotBlank(mainData.getExamineOpinion()) ? mainData.getExamineOpinion():msg; + // 濡傛灉杩斿洖浜嗗鏌ユ剰瑙佸氨鐢ㄨ繑鍥炵殑 + msg = Func.isNotBlank(mainData.getExamineOpinion()) ? msg+"锛屾剰瑙侊細"+mainData.getExamineOpinion():msg; jcontent.put("applyId", applyId); jcontent.put("formState", formState); jcontent.put("customCoding", customCoding); @@ -185,6 +186,7 @@ DockingPreApplyForm dockingPreApplyForm = oldDockingPreApplyFormList.get(0); dockingPreApplyForm.setMsg(msg); dockingPreApplyForm.setCode("1"); + dockingPreApplyForm.setLastModifyTime(new Date()); if (res) { dockingPreApplyForm.setGroupCode(customCoding); } @@ -196,20 +198,34 @@ if (res) { //姝ゅ闇�瑕佹煡璇笟鍔℃暟鎹紝鍘绘洿鏀� R<List<BaseModel>> R = mdmEngineClient.selectByTypeAndOid(jdatabtmname,jdataid); + // TODO:鏂板涓氬姟閫昏緫锛岄渶瑕佹牴鎹泦鍥㈣繑鍥炵殑灞炴�ц繘琛屽垽鏂紝濡傛灉闆嗗洟瀵硅灞炴�ц繘琛屼簡淇敼缂栫爜绯荤粺涔熷氨闇�瑕佸灞炴�ц繘琛屼慨鏀� if(R.isSuccess()){ - List<BaseModel> oldDatalist=new ArrayList<>(); - List<BaseModel> newDatalist=R.getData(); - if(!CollectionUtils.isEmpty(newDatalist)){ + List<BaseModel> newDatalist=new ArrayList<>(); + List<BaseModel> oldDatalist=R.getData(); + if(!CollectionUtils.isEmpty(oldDatalist)){ if(editObjectMap.containsKey(jdatabtmname)){ - oldDatalist=editObjectMap.getOrDefault(jdatabtmname,new ArrayList<>()); + newDatalist=editObjectMap.getOrDefault(jdatabtmname,new ArrayList<>()); } BaseModel baseModel=oldDatalist.get(0); //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); baseModel.setLastModifyTime(new Date()); - baseModel.getData().put("groupcode",customCoding); + baseModel.getData().put("GROUPCODE",customCoding); + // 1銆佸彇鍒伴泦鍥㈣繑鍥炵殑ViewInfos涓紪鐮佽鍥句腑鐨勫睘鎬� + List<Map<String, Object>> viewValueList = mainData.getViewInfos().stream().filter(item -> item.getViewName().equals("缂栫爜瑙嗗浘")).map(DockingViewVO::getViewValue).findFirst().orElse(null); + // 2銆佹瘮瀵瑰睘鎬ф槸鍚﹀拰oldDatalist灞炴�т竴鑷达紝涓嶄竴鑷村氨闇�瑕佹洿鏀� + if(Func.isNotEmpty(viewValueList)){ + // 3銆侀渶瑕佸皢闆嗗洟灞炴�ц浆鎹负鎴戜滑绯荤粺鐨勫睘鎬э紝鍐嶅拰鎴戜滑绯荤粺鐨勭幇鏈夊睘鎬ф瘮瀵� + String codeclsfid = VciBaseUtil.getMapStrValueIgnoreCase(baseModel.getData(),"CODECLSFID"); + // 3.1銆侀�氳繃璇ユ潯鏁版嵁鐨勫垎绫籭d锛屾嬁鍒伴泦鍥㈠睘鎬ф槧灏勯厤缃紝鐢ㄦ潵灏嗛泦鍥㈢殑灞炴�ф槧灏勫埌鎴戜滑绯荤粺鐨勫睘鎬� + List<DockingPreAttrMapping> dockingPreAttrMappings = dockingPreAttrMappingService.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, codeclsfid).eq(DockingPreAttrMapping::getViewName,"缂栫爜瑙嗗浘")); + if(Func.isNotEmpty(dockingPreAttrMappings)){ + //鏍规嵁闆嗗洟灞炴�ф槧灏勫皢闆嗗洟杞埌鎴戜滑绯荤粺锛屽苟淇敼涓嶄竴鑷寸殑鍒版垜浠郴缁熶腑瀵瑰簲鐨勮鏉¤褰曠殑鍊� + sourceAttrKey2TargetKey(dockingPreAttrMappings, viewValueList.get(0), oldDatalist, baseModel); + } + } log.info("鐢宠鍗�:"+applyId+",闆嗗洟鐮侊細"+customCoding+"缂栫爜锛�"+baseModel.getId()); - oldDatalist.add(baseModel); - editObjectMap.put(jdatabtmname,oldDatalist); + newDatalist.add(baseModel); + editObjectMap.put(jdatabtmname,newDatalist); } } } @@ -223,7 +239,7 @@ if(!CollectionUtils.isEmpty(dockingPreApplyFormList)){ dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList); } - saveLogUtil.operateLog("鐢宠鍗曠粨鏋滆繑鍥�",false,JSON.toJSONString(dockingReturnStoreVO.getMainData())); + saveLogUtil.operateLog("鐢宠鍗曠粨鏋滆繑鍥�",false, JSON.toJSONString(dockingReturnStoreVO.getMainData())); }catch (Throwable e){ e.printStackTrace(); saveLogUtil.operateLog("鐢宠鍗曠粨鏋滆繑鍥�",true,"閿欒淇℃伅锛�"+e.getMessage()+"\n"+ JSON.toJSONString(dockingReturnStoreVO.getMainData())); @@ -231,6 +247,37 @@ } log.info("鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹� end"); return R.success("闆嗗洟鐮佽祴鍊兼垚鍔�"); + } + + /** + * 鏍规嵁闆嗗洟灞炴�ф槧灏勫皢闆嗗洟杞埌鎴戜滑绯荤粺 + * @param dockingPreAttrMappings + * @param viewValueMap + * @param oldDatalist + * @param baseModel + */ + private void sourceAttrKey2TargetKey(List<DockingPreAttrMapping> dockingPreAttrMappings,Map<String, Object> viewValueMap, List<BaseModel> oldDatalist,BaseModel baseModel){ + Map<String, Object> targetKeyMap = new HashMap<>(); + // 灏嗛泦鍥㈠睘鎬ц浆鎴愭垜浠郴缁熷睘鎬х殑map + dockingPreAttrMappings.stream().forEach(item->{ + targetKeyMap.put(item.getTargetAttrKey(),viewValueMap.get(item.getSourceAttrKey())); + }); + // 姣斿baseModel鐨刣ata涓殑灞炴�ф槸鍚﹀拰targetKeyMap涓嶄竴鑷达紝涓嶄竴鑷寸殑璇濆氨闇�瑕佸皢baseModel鐨刣ata涓殑瀵瑰簲key鐨剉alue鍊艰浆鎴愰泦鍥㈢殑 + boolean isEdit = false; + for (Map.Entry<String, Object> entry : targetKeyMap.entrySet()) { + String key = entry.getKey(); + Object targetValue = entry.getValue(); + String dataValue = baseModel.getData().get(key); + + if (targetValue != null && !targetValue.equals(dataValue)) { + baseModel.getData().put(key, targetValue.toString()); + isEdit = true; + } + } + // 闆嗗洟瀵规垜浠郴缁熷睘鎬у仛浜嗚皟鏁达紝鎴戜滑闇�瑕佸鑰佺殑涓氬姟鏁版嵁鍋氳褰� + if (isEdit) { + baseModel.getData().put("oldbusinessdata", JSON.toJSONString(oldDatalist)); + } } /*** @@ -317,8 +364,8 @@ try { String jclassId =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); + // 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); -- Gitblit v1.9.3