From ac4e090952cfa701d7d681ada7d7900e3ce45755 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 17 五月 2024 11:05:03 +0800 Subject: [PATCH] 集成申请,历史数据导入,关键属性查重多线程导致判重失误问题 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 2 +- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 15 +++++++++------ Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java | 9 ++++----- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 1 + 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java index 4e4877b..9522cb8 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java @@ -87,20 +87,19 @@ baseModel.setFirstV("1"); baseModel.setLastR("1"); baseModel.setLastV("1"); - baseModel.setRevisionSeq(1); // TODO:鐩墠鍙湁缂栫爜瑙勫垯涓湁鐢ㄥ埌锛屽悗鏈熼渶瑕佸幓鎺夎繖娈典唬鐮佺殑璇濓紝灏辨妸浠栧姞鍦ㄧ紪鐮佽鍒欐柊澧炰腑鍘� if(Func.isBlank(baseModel.getOwner())){ // 璁剧疆鎵�鏈夎�� baseModel.setOwner(Func.isNotEmpty(user) ? user.getUserId().toString():AuthUtil.getUserId().toString()); } - baseModel.setVersionSeq(1); - baseModel.setVersionRule("0"); baseModel.setVersionValue("1"); - baseModel.setRevisionOid(VciBaseUtil.getPk()); - baseModel.setLastModifier(account); + baseModel.setVersionRule("0"); + baseModel.setRevisionSeq(1); baseModel.setRevisionValue("1"); baseModel.setRevisionRule("1"); + baseModel.setRevisionOid(VciBaseUtil.getPk()); + baseModel.setLastModifier(account); baseModel.setTenantId(Func.isNotEmpty(user) ? user.getTenantId():AuthUtil.getTenantId()); }catch (VciBaseException e){ e.printStackTrace(); 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 9177504..22f9c36 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 @@ -2424,7 +2424,7 @@ //閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌� //濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓� - Map<String, String> errorKeyMap = new HashMap<>(); + Map<String, String> errorKeyMap = new ConcurrentHashMap<>(); //1.鍒嗙被娉ㄥ叆 batchSwitchClassifyAttrOnOrder(attrVOS, cboList, classifyFullInfo, false); //boolean @@ -2447,6 +2447,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 +2689,6 @@ } } - } /*** @@ -4423,9 +4423,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); @@ -4478,7 +4480,7 @@ // TODO:Thread limit exceeded replacing blocked 寮傚父鏄繖閮ㄥ垎浠g爜鎶涘嚭鐨� // ,鎵�浠ユ殏鏃跺皢parallelStream鏀规垚浜唖tream锛屾敼鎴愪簡stream涔嬪悗鍙戠幇宸ㄦ參 // customForkJoinPool鎺у埗骞跺彂搴� - List<ClientBusinessObject> finalCboList = cboList; + final List<ClientBusinessObject> finalCboList = cboList; Map<String, List<CodeSynonym>> finalCodeSynonymMaps = codeSynonymMaps; List<ClientBusinessObject> repeatDataMap = (List<ClientBusinessObject>) customForkJoinPool.submit(() -> { finalCboList.parallelStream().filter(cbo -> { @@ -4522,6 +4524,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); @@ -5365,7 +5368,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); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java index 14524ab..f9c3efc 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java @@ -1,5 +1,6 @@ package com.vci.ubcs.code.service.impl; +import com.alibaba.fastjson.JSON; import com.vci.ubcs.code.algorithm.CustomSerialEnum; import com.vci.ubcs.code.annotation.MdmSerialAlgorithm; import com.vci.ubcs.code.annotation.MdmSerialAlgorithmMethod; diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index 79a077a..a543a17 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -293,7 +293,7 @@ passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT), this.getRequest()); }catch (Throwable e){ errorid[0] ="1"; - throw new Throwable("鐢ㄦ埛閴存潈澶辫触."); + throw new Throwable("鐢ㄦ埛閴存潈澶辫触锛屽師鍥狅細"+e.getMessage()); } List<ClassfyVO> classVOList = classfysVO.getClassify(); //InterParameterVO finalInterParameterVO = interParameterVO; -- Gitblit v1.9.3