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/MdmProductCodeServiceImpl.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

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 5f5cf28..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;
@@ -360,7 +361,11 @@
 			List<CodeBasicSecVO> attrSecVOList = new ArrayList<>();
 			for (int i = 0; i < secVOList.size(); i++) {
 				CodeBasicSecVO secVO = secVOList.get(i);
-				switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
+				try{
+					switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
+				}catch (Exception e){
+					throw new ServiceException("鐮佸�艰浆鎹㈡椂鍑虹幇閿欒锛屽師鍥狅細"+e.getMessage());
+				}
 			}
 			//澶勭悊灞炴�х爜娈靛拰娴佹按鐮佹
 			Map<String/**娴佹按鐮佹鐨勪富閿�**/, Map<String/**娴佹按渚濇嵁**/, String>> lastMaxSerialValueMap = new HashMap<>();
@@ -423,7 +428,7 @@
 				.collectingAndThen(
 					Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CodeAllCode::getId))),
 					ArrayList::new));
-			if( distinctCodeAllCOdes.size() != allCodeDOList.size() ){
+			if(distinctCodeAllCOdes.size() != allCodeDOList.size() ){
 				throw new ServiceException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
 			}
 			QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
@@ -884,7 +889,7 @@
 			case CODE_VARIABLE_SEC:
 				//鍙彉鐮佹锛屾槸鍦ㄩ〉闈笂杈撳叆鍐呭
 				if (secValue.length() > VciBaseUtil.getInt(secVO.getCodeSecLength())) {
-					throw new VciBaseException("銆恵0}銆戣繖涓爜娈垫槸鍙彉鐮佹锛屼絾鏄幇鍦ㄨ緭鍏ョ殑鐮佸�肩殑闀垮害({1})瓒呰繃浜嗚瀹氱殑闀垮害{2}", new String[]{secVO.getName(), String.valueOf(secValue.length()), secVO.getCodeSecLength()});
+					throw new ServiceException(String.format("銆恵%s}銆戣繖涓爜娈垫槸鍙彉鐮佹锛屼絾鏄幇鍦ㄨ緭鍏ョ殑鐮佸�肩殑闀垮害({%s})瓒呰繃浜嗚瀹氱殑闀垮害{%s}", secVO.getName(), secValue.length(), secVO.getCodeSecLength()));
 				}
 				OsCodeFillTypeEnum fillTypeEnum = OsCodeFillTypeEnum.forValue(secVO.getCodeFillType());
 				secValue = fillString(VciBaseUtil.getInt(secVO.getCodeSecLength()), fillTypeEnum, secValue, secVO.getCodeFillSeparator());
@@ -1215,7 +1220,7 @@
 			for (int j = 0; j < serialSecVOList.size(); j++) {
 				CodeBasicSecVO secVO = serialSecVOList.get(j);
 				if(lastMaxSerialValueMap.containsKey(secVO.getOid())){//姝や负鏈�鍚庨渶瑕佸瓨鍏ユ祦姘翠緷璧栫殑鏈�澶ф祦姘�
-					Map<String/**娴佹按渚濇嵁**/, String> serialValueMap=	lastMaxSerialValueMap.get(secVO.getOid());
+					Map<String/**娴佹按渚濇嵁**/, String> serialValueMap = lastMaxSerialValueMap.get(secVO.getOid());
 					serialValueMap.forEach((maxSerialUnitString,serialValue)->{
 						if(StringUtils.isNotBlank(serialValue)){
 							serialUnitString.set(maxSerialUnitString);
@@ -1288,7 +1293,6 @@
 		mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList);
 		return codeList;
 	}
-
 
 	/**
 	 * 杞崲鐮佸�肩殑鍐呭

--
Gitblit v1.9.3