From 2ee762713f93c6259bb7f1c2f357572d0923ea33 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 25 八月 2023 23:08:18 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 74 ++++++++++++++++++++++++++++++++++-- 1 files changed, 69 insertions(+), 5 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index dd16e4d..b0e21bf 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java @@ -1962,6 +1962,7 @@ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); + Map<String,List<String>>keyAttrOkOidTORepeatOidMap= keyResultVO.getKeyAttrOkOidTORepeatOidMap(); if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){ selfRepeatRowIndexList.stream().forEach(rowIndex->{ /* //浼犲叆鏁版嵁涔嬮棿鍏抽敭灞炴�х殑鏍¢獙 @@ -2064,8 +2065,8 @@ String lcstatus =newCbo.getLcStatus(); String newOid =newCbo.getOid(); Date ts =newCbo.getTs(); - groupCode=newCbo.getData().get("GROUPCODE"); - code=newCbo.getId(); + code = StringUtils.isBlank(newCbo.getId())?"":newCbo.getId(); + groupCode=newCbo.getData().getOrDefault("GROUPCODE",""); String lastmodifier=newCbo.getLastModifier(); if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) { newCbo.setOid(newOid); @@ -2136,8 +2137,8 @@ // if(!isProcess){ dataCBOList.stream().forEach(needSaveCbo->{ XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); - String code=needSaveCbo.getId(); - String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE",""); + String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId(); + String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," "); //resultDataObjectDetailDO.setCode(needSaveCbo.getId()); String msg="鐢宠缂栫爜鎴愬姛"; String oid=needSaveCbo.getOid(); @@ -2157,6 +2158,9 @@ resultDataObjectDetailDO.setErrorid("0"); resultDataObjectDetailDO.setMsg(msg); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); + //澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁 + LinkedList<XMLResultDataObjectDetailDO> repeatDataObjectDetailDOS=handleApplyDataKeyAttrRepeat(keyAttrOkOidTORepeatOidMap,codeOidToSystemOidMap,needSaveCbo,isCodeOrGroupCode); + resultDataObjectDetailDOs.addAll(repeatDataObjectDetailDOS); }); /* }else{ needSaveCboList.stream().forEach(needSaveCbo->{ @@ -2193,6 +2197,51 @@ } } + } + + /*** + *缁欏悓涓�鎵圭敵璇风紪鐮佸瓨鍦ㄥ叧閿睘鎬х殑鏁版嵁璧嬩笂涓�鑷寸紪鐮� + * @param keyAttrOkOidTORepeatOidMap 涓�鎵圭敵璇锋暟鎹叧閿睘鎬т竴鑷寸殑閲嶅鏁版嵁鏄犲皠鍏崇郴 + * @param codeOidToSystemOidMap + * @param needSaveCbo + * @param isCodeOrGroupCode + */ + private LinkedList<XMLResultDataObjectDetailDO> handleApplyDataKeyAttrRepeat(Map<String,List<String>>keyAttrOkOidTORepeatOidMap,Map<String,String> codeOidToSystemOidMap,BaseModel needSaveCbo,boolean isCodeOrGroupCode){ + LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>(); + String oid=needSaveCbo.getOid(); + if(keyAttrOkOidTORepeatOidMap.containsKey(oid)){ + List<String> repeatOidList= keyAttrOkOidTORepeatOidMap.get(oid); + if(!CollectionUtils.isEmpty(repeatOidList)){ + String sourceNewOid=needSaveCbo.getOid(); + String sourceOid=sourceNewOid; + if(codeOidToSystemOidMap.containsKey(oid)){ + sourceOid=codeOidToSystemOidMap.get(oid); + } + String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId(); + String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," "); + String finalSourceOid = sourceOid; + repeatOidList.stream().forEach(repeatOid->{ + if(codeOidToSystemOidMap.containsKey(repeatOid)){ + XMLResultDataObjectDetailDO repeatresultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); + String repeatSourceOid=codeOidToSystemOidMap.get(repeatOid); + String repeatMsg="姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��"+ finalSourceOid +"銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜"; + if(isCodeOrGroupCode) { + if(StringUtils.isBlank(groupCode)){ + repeatMsg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��"; + } + repeatresultDataObjectDetailDO.setCode(groupCode); + }else{ + repeatresultDataObjectDetailDO.setCode(code); + } + repeatresultDataObjectDetailDO.setId(repeatSourceOid); + repeatresultDataObjectDetailDO.setErrorid("0"); + repeatresultDataObjectDetailDO.setMsg(repeatMsg); + resultDataObjectDetailDOs.add(repeatresultDataObjectDetailDO); + } + }); + } + } + return resultDataObjectDetailDOs; } /*** * 闆嗘垚鎵归噺鍚屾鏇存柊鎺ュ彛 @@ -2436,6 +2485,7 @@ } } } + /** * 鏍¢獙灞炴�ф槸鍚︿负蹇呰緭 * @@ -2743,7 +2793,7 @@ * @param errorMap * @return */ - private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){ + private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){ codeDataMap.keySet().forEach(code->{ RowDatas rowDatas=codeDataMap.get(code); Map<String, String> data= rowDatas.getFiledValue(); @@ -3846,8 +3896,10 @@ //蹇呴』灏嗗睘鎬ф寜鐓ч『搴忔帓搴忓ソ List<CodeClassifyTemplateAttrVO> attrVOList = ketAttrMap.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList()); Map<String/**琛屽彿**/,String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/> rowIndexKeyStringMap = new HashMap<>(); + Map<String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/,String/**绗竴涓叧閿睘鎬х殑鏁版嵁oid**/> okOidKeyStringMap = new HashMap<>(); dataList.parallelStream().forEach(cbo-> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + String oid=cbo.getOid(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < attrVOList.size(); i++) { CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i); @@ -3873,7 +3925,19 @@ String keyString = sb.toString(); if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){ selfRepeatRowIndexList.add(rowIndex); + String okOid=okOidKeyStringMap.getOrDefault(keyString,""); + if(StringUtils.isNotBlank(okOid)){ + List<String>newOidList=new ArrayList<>(); + newOidList.add(oid); + if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){ + List<String> oldOidList= keyAttrOkOidTORepeatOidMap.get(okOid); + newOidList.addAll(oldOidList); + + } + keyAttrOkOidTORepeatOidMap.put(okOid,newOidList); + } }else { + okOidKeyStringMap.put(sb.toString(),oid); rowIndexKeyStringMap.put(rowIndex, sb.toString()); } }); -- Gitblit v1.9.3