From df18b23b4569828d6be32fb64c80492241e1fc46 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 16 十月 2023 20:31:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java |   39 +++++++++++++++++++++++++--------------
 1 files changed, 25 insertions(+), 14 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 0e4b705..3f5e3d1 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
@@ -151,13 +151,14 @@
 								OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType()))));
 						}
 						Map<String, Double> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>());
+						Double maxValue=serialDb;
 						if(thisUnitMaxMap.containsKey(secOid)){
-							Double maxValue=  thisUnitMaxMap.getOrDefault(secOid,new Double(-1));
-							if(maxValue>serialDb){
-								serialDb=maxValue;
+							maxValue=  thisUnitMaxMap.getOrDefault(secOid,new Double(-1));
+							if(maxValue<serialDb){
+								maxValue=serialDb;
 							}
 						}
-						thisUnitMaxMap.put(secOid,serialDb);
+						thisUnitMaxMap.put(secOid,maxValue);
 						maxSerialMap.put(serialUnitString,thisUnitMaxMap);
 						serialUnFileStringList.add(String.valueOf(serialDb));
 					});
@@ -171,7 +172,8 @@
 				allCodeDO.setCreateCodeBtm(cbo.getBtmname());
 				allCodeDO.setCreateCodeOid(cbo.getOid());
 				allCodeDO.setSerialUnit(serialUnitString);
-				allCodeDO.setUnFillSerial(serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)));
+				String unFillSerial =serialUnFileStringList.size()==1?serialUnFileStringList.get(0)+ SERIAL_VALUE_SPACE:serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE));
+				allCodeDO.setUnFillSerial(unFillSerial);
 				allCodeDO.setLcStatus(cbo.getLcStatus());
 				allCodeDOList.add(allCodeDO);
 			});
@@ -273,12 +275,15 @@
 					if( distinctCodeAllCOdes.size() != addCodeDOs.size() ){
 						throw new VciBaseException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
 					}
+					QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
+					wrapper.eq("CREATECODEBTM",addCodeDOs.get(0).getCreateCodeBtm());
+					wrapper.in("ID",addCodeDOs.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+					if(codeAllCodeService.count(wrapper)>0){
+						throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍,璇风‘璁ゅ涓嬬敓鎴愮殑ID鏁版嵁锛�"+ addCodeDOs.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+					}
 					codeAllCodeService.saveBatch(addCodeDOs);
 				}
 				mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList);
-				if(mdmEngineService.selectIdsCounts(dataCBOList.get(0).getBtmname(),dataCBOList.stream().map(BaseModel::getId).collect(Collectors.toList()))>0){
-					throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍璇风‘璁わ紒锛�");
-				}
 			}
 			return codeList;
 		}else {
@@ -357,8 +362,11 @@
 			if( distinctCodeAllCOdes.size() != allCodeDOList.size() ){
 				throw new ServiceException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
 			}
-			if(mdmEngineService.selectIdsCounts(dataCBOList.get(0).getBtmname(),dataCBOList.stream().map(BaseModel::getId).collect(Collectors.toList()))>0){
-				throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍璇风‘璁わ紒锛�");
+			QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
+			wrapper.eq("CREATECODEBTM",allCodeDOList.get(0).getCreateCodeBtm());
+			wrapper.in("ID",allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+			if(codeAllCodeService.count(wrapper)>0){
+				throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍,璇风‘璁ゅ涓嬬敓鎴愮殑ID鏁版嵁锛�"+ allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
 			}
 			codeAllCodeService.saveBatch(allCodeDOList);
 //			iCodeWupinService.saveBatch(dataCBOList);
@@ -744,12 +752,14 @@
 	private String killFillChar(String s, String fillString,boolean left){
 		Integer index = 0;
 		String value = s;
+
 		if(left){
 			for (int i = 0; i < s.length(); i++) {
 				char c = s.charAt(i);
-				if((new String(new char[]{c})).equalsIgnoreCase(fillString)){
-					index = i;
+				if(!(new String(new char[]{c})).equalsIgnoreCase(fillString)){
+					break;
 				}
+				index = i;
 			}
 			if(index >0){
 				value = value.substring(index);
@@ -758,9 +768,10 @@
 			//浠庡彸寰�宸︽壘
 			for (int i = s.length()-1; i >=0; i++) {
 				char c = s.charAt(i);
-				if((new String(new char[]{c})).equalsIgnoreCase(fillString)){
-					index = i;
+				if(!(new String(new char[]{c})).equalsIgnoreCase(fillString)){
+					break;
 				}
+				index = i;
 			}
 			if(index >0){
 				value = value.substring(0,index);

--
Gitblit v1.9.3