From bac99eb3983ed78043e6326ae5fa1f6ff336e4dd Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 31 十月 2023 16:30:41 +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 |   75 ++++++++++++++++++++++++++++---------
 1 files changed, 57 insertions(+), 18 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 e24b7fb..d9e3b19 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
@@ -31,6 +31,7 @@
 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;
@@ -86,22 +87,20 @@
 
 		/*****
 		 * 淇濊瘉骞跺彂鐨勬椂鍊欙紝鏈�澶ф祦姘村彿閮藉鐨勶紝浣嗘槸杩欑鍔犻攣鏈夊紛绔�
-		 *
 		 */
-
 		if(dataCBOList.stream().anyMatch(cbo-> StringUtils.isNotBlank(cbo.getId()))
-//			&& StringUtils.isNotBlank(cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD))
-			){
+			// && StringUtils.isNotBlank(cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD))
+		){
 			//鏄巻鍙叉暟鎹鍏�
 			//鍘嗗彶鏁版嵁鎵ц鐨勬椂鍊欙紝杩欎釜绯荤粺浼氬緢鍗�
 			//涓昏鏄负浜嗗綍鍏ユ渶澶ф祦姘村彿鍜宎llcode
-//			SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
+			//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
 			List<CodeAllCode> allCodeDOList = new ArrayList<>();
 			Map<String/**娴佹按渚濇嵁**/, Map<String/**鐮佹鐨勪富閿�**/,Double/**鏈�澶ф祦姘村彿**/>> maxSerialMap = new HashMap<>();
 			// TODO 澶氱嚎绋嬫祦寮曞彂鐨勯棶棰樺凡淇敼
 			dataCBOList.parallelStream().forEach(cbo->{
 				log.info("code:----->"+cbo.getId());
-//				VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
+				//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
 				String code = cbo.getId();
 				List<String> serialUnitList = new ArrayList<>();
 				String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD);
@@ -278,8 +277,27 @@
 					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){
+					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);
 				}
@@ -365,8 +383,28 @@
 			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){
+			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);
@@ -381,10 +419,11 @@
 //				}
 //			});
 		}
-//		WebUtil.setPersistence(true);
-//		boService.persistenceBatch(batchCBO);
+		// WebUtil.setPersistence(true);
+		// boService.persistenceBatch(batchCBO);
 		return codeList;
 	}
+
 	/**
 	 * 杞崲灞炴�х爜娈电殑鍊�
 	 * @param attrSecVOList 灞炴�х爜娈电殑鏄剧ず瀵硅薄
@@ -428,7 +467,6 @@
 			});
 		}
 	}
-
 
 	/**
 	 * 杞崲娴佹按鐮佹鐨勫��
@@ -673,9 +711,6 @@
 		allCodeDOList.add(allCodeDO);
 	}
 
-
-
-
 	/**
 	 * 淇濆瓨娴佹按鐨勪俊鎭�
 	 * @param ruleVO 瑙勫垯鐨勬樉绀哄璞�
@@ -752,12 +787,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);
@@ -766,9 +803,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);
@@ -836,4 +874,5 @@
 //		WebUtil.copyValueToMapFromCbos(cbo,dataMap);
 		return formulaService.getValueByFormula(map,rule);
 	}
+
 }

--
Gitblit v1.9.3