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