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 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 7 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 c456a78..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; @@ -197,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); } } } @@ -234,6 +249,37 @@ 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)); + } + } + /*** * 鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹� * @param dockingClassifyModelAttrVO -- Gitblit v1.9.3