From e282b39a750d245f86a08194a6f4d02d545232ef Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 01 十一月 2024 10:47:36 +0800 Subject: [PATCH] 历史数据导入码值查重条件加上版次条件 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 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 d8d36a9..3e2f852 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 @@ -430,6 +430,7 @@ throw new VciBaseException("妯℃澘娌℃湁閰嶇疆灞炴��"); } } + //鍓旈櫎鎺夐粯璁ょ殑灞炴�э紝浠ュ強琛ㄥ崟涓嶆樉绀虹殑灞炴�� List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateAttrVOList.stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && StringUtils.isBlank(s.getComponentRule()) @@ -2424,7 +2425,7 @@ //閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌� //濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓� - Map<String, String> errorKeyMap = new HashMap<>(); + Map<String, String> errorKeyMap = new ConcurrentHashMap<>(); //1.鍒嗙被娉ㄥ叆 batchSwitchClassifyAttrOnOrder(attrVOS, cboList, classifyFullInfo, false); //boolean @@ -2447,6 +2448,7 @@ batchSwitchComponentAttrOnOrder(attrVOS, cboList); //3.鍒ゆ柇鍏抽敭灞炴�� CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList, false, errorKeyMap); + log.info("================鏌ラ噸鍚庣殑errorKeyMap閿欒淇℃伅================="+JSON.toJSONString(errorKeyMap)); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); @@ -2688,7 +2690,6 @@ } } - } /*** @@ -2716,7 +2717,8 @@ if (codeOidToSystemOidMap.containsKey(repeatOid)) { XMLResultDataObjectDetailDO repeatresultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); String repeatSourceOid = codeOidToSystemOidMap.get(repeatOid); - String repeatMsg = "姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��" + finalSourceOid + "銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜"; + //String repeatMsg = "姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��" + finalSourceOid + "銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜"; + String repeatMsg = "姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��" + code + "銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜"; if (isCodeOrGroupCode) { if (StringUtils.isBlank(groupCode)) { repeatMsg = "鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��"; @@ -4116,7 +4118,8 @@ StringBuffer sb = new StringBuffer(); sb.append(" select id from "); sb.append(finalTableName); - sb.append(" where 1=1 "); + //sb.append(" where 1 = 1"); + sb.append(" where lastr = 1 and lastv = 1"); //TODO:娑夊強鍒板凡鍗囩増鐨勬暟鎹篃搴旇鎺掗櫎鎺夛紝鍚﹀垯浼氭姤閲� sb.append(" and id in ("); sb.append(VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0]))); sb.append(")"); @@ -4422,9 +4425,11 @@ * @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭� * @param templateVO 妯℃澘鐨勫唴瀹癸紝蹇呴』鍖呭惈妯℃澘灞炴�� * @param cboList 鎵归噺鐨勬暟鎹� - */ + * @param isEdit 鏄惁鏄慨鏀� + * @param errorMap 蹇呴』蹇呴』蹇呴』鏄嚎绋嬪畨鍏ㄧ殑闆嗗悎 + * */ private CodeImportResultVO batchCheckKeyAttrOnOrder(CodeClassifyFullInfoBO classifyFullInfo, CodeClassifyTemplateVO templateVO, - List<ClientBusinessObject> cboList, boolean isEdit, Map<String, String> errorMap) { + List<ClientBusinessObject> cboList, boolean isEdit, Map<String, String> errorMap/*蹇呴』瑕佹槸绾跨▼瀹夊叏鐨勯泦鍚�*/) { //涓嶮dmEngineServiceImpl閲岀殑checkKeyAttrOnOrder鐩镐技 //鍏堣幏鍙栧叧閿睘鎬х殑瑙勫垯锛屼篃鍒╃敤缁ф壙鐨勬柟寮� CodeKeyAttrRepeatVO keyRuleVO = keyRuleService.getRuleByClassifyFullInfo(classifyFullInfo); @@ -4453,7 +4458,7 @@ if (Func.isNotEmpty(codeSynonymMaps)) { codeSynonymMaps.keySet().stream().forEach(item -> { synonymResString.append(item); - synonymResString.append("锛�"); + synonymResString.append(","); }); } resultVO.setSynonymRuleInfo(Func.isEmpty(codeSynonymMaps) ? "" : String.format("浠ヤ笅[%s]琚缃簡杩戜箟璇嶆煡璇㈣鍒欑殑鍏抽敭灞炴��,涓嚭鐜颁簡閲嶅锛�", synonymResString)); @@ -4477,8 +4482,8 @@ // TODO:Thread limit exceeded replacing blocked 寮傚父鏄繖閮ㄥ垎浠g爜鎶涘嚭鐨� // ,鎵�浠ユ殏鏃跺皢parallelStream鏀规垚浜唖tream锛屾敼鎴愪簡stream涔嬪悗鍙戠幇宸ㄦ參 // customForkJoinPool鎺у埗骞跺彂搴� - List<ClientBusinessObject> finalCboList = cboList; - Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; + final List<ClientBusinessObject> finalCboList = cboList; + final Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; List<ClientBusinessObject> repeatDataMap = (List<ClientBusinessObject>) customForkJoinPool.submit(() -> { finalCboList.parallelStream().filter(cbo -> { //姣忚閮藉緱鏌ヨ.濡傛灉鍏朵腑鍑虹幇浜嗛敊璇紝鎴戜滑灏辩洿鎺ユ姏鍑哄紓甯革紝鍏朵綑鐨勬樉绀� @@ -4521,6 +4526,7 @@ }); // 娣诲姞閿欒鍊� String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + log.info("=============鍏抽敭灞炴�ф煡璇㈤噸澶嶇殑============="+JSON.toJSONString(repeatData)); errorMap.put(rowIndex, "閲嶅鐨勮褰曠紪鍙蜂负:" + repeatData.stream().collect(Collectors.joining(","))); if (!CollectionUtils.isEmpty(newCboList)) { indexTODataMap.put(cbo.getAttributeValue(IMPORT_ROW_INDEX), newCboList); @@ -5364,7 +5370,7 @@ List<String> codeList = cboList.stream().map(ClientBusinessObject::getId).collect(Collectors.toList()); List<Map<String, String>> dataList = new ArrayList<>(); - Map<String, String> errorMap = new HashMap<>(); + Map<String, String> errorMap = new ConcurrentHashMap<>(); batchSwitchCheckExist(errorMap, cboList, classifyFullInfo, templateVO, execGroupCodePortDataDTO, fieldIndexMap); //鍒ゆ柇蹇呰緭椤� batchCheckRequiredAttrOnOrder(templateVO, cboList, errorMap); -- Gitblit v1.9.3