From 7795e413db43b5c2e282fcdb9607c059e09eceb5 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 19 十月 2023 08:49:16 +0800
Subject: [PATCH] 申请/维护接口人员存储测试

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java |   66 ++++++++++++++++++++++++++++++--
 1 files changed, 61 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 33c8e01..85d050f 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
@@ -30,6 +30,8 @@
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.starter.web.util.VciDateUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -274,6 +276,31 @@
 					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()));
+					List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper);
+					List<CodeAllCode> takeBack = codeAllCodes.stream().filter(e -> e.getLcStatus().equals("TakeBack")).collect(Collectors.toList());
+					if(codeAllCodes.size()>takeBack.size()){
+						throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍,璇风‘璁ゅ涓嬬敓鎴愮殑ID鏁版嵁锛�"+ addCodeDOs.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+					}
+					for (CodeAllCode codeAllCode : takeBack) {
+						codeAllCode.setTs(new Date());
+						codeAllCode.setLastModifyTime(new Date());
+						codeAllCode.setLastModifier(AuthUtil.getUserId().toString());
+						Iterator<CodeAllCode> iterator = addCodeDOs.iterator();
+						while (iterator.hasNext()){
+							CodeAllCode next = iterator.next();
+							if(codeAllCode.getId().equals(next.getId())){
+								codeAllCode.setCreateCodeOid(next.getCreateCodeOid());
+								codeAllCode.setLcStatus(next.getLcStatus());
+								iterator.remove();
+							}
+						}
+					}
+					if(takeBack.size()>0){
+						codeAllCodeService.updateBatchById(takeBack);
+					}
 					codeAllCodeService.saveBatch(addCodeDOs);
 				}
 				mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList);
@@ -353,7 +380,33 @@
 					Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CodeAllCode::getId))),
 					ArrayList::new));
 			if( distinctCodeAllCOdes.size() != allCodeDOList.size() ){
-				throw new VciBaseException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
+				throw new ServiceException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
+			}
+			QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
+			wrapper.eq("CREATECODEBTM",allCodeDOList.get(0).getCreateCodeBtm());
+			wrapper.in("ID",allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+			List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper);
+			List<CodeAllCode> takeBack = codeAllCodes.stream().filter(e -> e.getLcStatus().equals("TakeBack")).collect(Collectors.toList());
+			if(codeAllCodes.size()>takeBack.size()){
+				throw new ServiceException("鐢熸垚缂栫爜鏁版嵁ID宸叉湁鍘嗗彶璁板綍,璇风‘璁ゅ涓嬬敓鎴愮殑ID鏁版嵁锛�"+ allCodeDOList.stream().map(CodeAllCode::getId).collect(Collectors.toList()));
+			}
+
+			for (CodeAllCode codeAllCode : takeBack) {
+				codeAllCode.setTs(new Date());
+				codeAllCode.setLastModifyTime(new Date());
+				codeAllCode.setLastModifier(AuthUtil.getUserId().toString());
+				Iterator<CodeAllCode> iterator = allCodeDOList.iterator();
+				while (iterator.hasNext()){
+					CodeAllCode next = iterator.next();
+					if(codeAllCode.getId().equals(next.getId())){
+						codeAllCode.setCreateCodeOid(next.getCreateCodeOid());
+						codeAllCode.setLcStatus(next.getLcStatus());
+						iterator.remove();
+					}
+				}
+			}
+			if(takeBack.size()>0){
+				codeAllCodeService.updateBatchById(takeBack);
 			}
 			codeAllCodeService.saveBatch(allCodeDOList);
 //			iCodeWupinService.saveBatch(dataCBOList);
@@ -739,12 +792,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);
@@ -753,9 +808,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