From 05d45bd440ffc92e14e6c8728ac8956a0488c0ab Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 07 十二月 2023 17:20:26 +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 |   35 +++++++++++++++++++++--------------
 1 files changed, 21 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 c6708e6..a770015 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
@@ -36,6 +36,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.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.WebUtil;
@@ -98,7 +99,7 @@
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO, CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<BaseModel> dataCBOList) throws Exception {
+	public List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO, CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<BaseModel> dataCBOList,BladeUser user) throws Exception {
 		dataCBOList = dataCBOList.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList());
 		List<String> codeList = new ArrayList<>();
 		final CodeRuleVO finalRuleVO = ruleVO;
@@ -114,7 +115,6 @@
 			List<CodeAllCode> allCodeDOList = new CopyOnWriteArrayList<>();
 			Map<String/**娴佹按渚濇嵁**/, HashMap<String/**鐮佹鐨勪富閿�**/,String/**鏈�澶ф祦姘村彿**/>> maxSerialMap = new HashMap<>();
 			// TODO 澶氱嚎绋嬫祦寮曞彂鐨勯棶棰樺凡淇敼
-			final HttpServletRequest request = WebUtil.getRequest();
 			dataCBOList.parallelStream().forEach(cbo->{
 				log.info("code:----->"+cbo.getId());
 				//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
@@ -204,7 +204,7 @@
 					});
 				}
 				CodeAllCode allCodeDO = new CodeAllCode();
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE,request);
+				DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE,user);
 				allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
 				allCodeDO.setCodeRuleOid(finalRuleVO.getOid());
 				allCodeDO.setId(cbo.getId());
@@ -237,13 +237,13 @@
 						log.info("oldmaxSerial--->"+serialValueDO.getMaxSerial()+"---- newmaxSerial---->"+maxSerial);
 						if(VciBaseUtil.getDouble(serialValueDO.getMaxSerial())<VciBaseUtil.getDouble(maxSerial)){
 							serialValueDO.setMaxSerial(String.valueOf(maxSerial));
-							DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO,null);
+							DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO,user);
 							editSerialValueList.add(serialValueDO);
 						}
 					}else{
 						//娌℃湁
 						CodeSerialValue serialValueDO = new CodeSerialValue();
-						DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE,request);
+						DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE,user);
 						serialValueDO.setCodeRuleOid(finalRuleVO.getOid());
 						serialValueDO.setSerialUnit(serialUnit);
 						serialValueDO.setCodeSecOid(secOid);
@@ -419,7 +419,7 @@
 			saveSerialValue( finalRuleVO, lastMaxSerialValueMap, maxSerialValueMap);
 
 			allCodeDOList.stream().forEach(
-				allCode -> {DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCode,"codeallcode",null);allCode.setLctid("codeAllCodeLC");}
+				allCode -> {DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCode,"codeallcode",user);allCode.setLctid("codeAllCodeLC");}
 			);
 
 
@@ -928,7 +928,7 @@
 	 * @param secValue 鐮佸��
 	 * @return
 	 */
-	private String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){
+	public String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){
 		StringBuilder joinSecValue = new StringBuilder();
 		// 鎷兼帴鍓嶇紑
 		if (Func.isNotEmpty(secVO.getPrefixCode()) && Func.isNotEmpty(secValue)) {
@@ -982,7 +982,7 @@
                                 BaseModel cbo, CodeClassifyTemplateVO templateVO,
                                 List<CodeAllCode> allCodeDOList, String serialUnitString, String serialValueString,String codeDelimiter){
 		CodeAllCode allCodeDO = new CodeAllCode();
-		DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE,null);
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE);
 		allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
 		allCodeDO.setCodeRuleOid(ruleVO.getOid());
 		allCodeDO.setId(cbo.getId());
@@ -1015,11 +1015,11 @@
 					//璇存槑鏈�
 					serialValueDO = maxSerialValueMap.get(secOid).get(unit);
 					serialValueDO.setMaxSerial(maxSerial.toString());
-					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO,null);
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO);
 					editSerialValueDOList.add(serialValueDO);
 				}else{
 					serialValueDO = new CodeSerialValue();
-					DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE,null);
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
 					serialValueDO.setCodeRuleOid(ruleVO.getOid());
 					serialValueDO.setSerialUnit(unit);
 					serialValueDO.setCodeSecOid(secOid);
@@ -1191,10 +1191,12 @@
 			switchSecValueBZ(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
 			//鍒嗘瀛樺偍娴佹按渚濊禆
 			if(secVO.getSecType().equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())){
+				int finalI = i;
+				final int[] index = {0};
 				List<String> newSerialUnitList= serialUnitList.stream().filter(secValueStr -> {
-					return  !secValueStr.equals("${"+secVO.getOid()+"}");
+					return index[0]++< finalI;//闄ゅ幓娴佹按鐨�
 				}).collect(Collectors.toList());
-				String serialUnitString = serialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : newSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
+				String serialUnitString = newSerialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : newSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
 				secOdserialUnitMap.put(secVO.getOid(),serialUnitString);
 			}
 		}
@@ -1231,7 +1233,7 @@
 			AtomicReference<String> serialUnitString= new AtomicReference<>("");
 			for (int j = 0; j < serialSecVOList.size(); j++) {
 				CodeBasicSecVO secVO = serialSecVOList.get(j);
-				if(lastMaxSerialValueMap.containsKey(secVO.getOid())){
+				if(lastMaxSerialValueMap.containsKey(secVO.getOid())){//姝や负鏈�鍚庨渶瑕佸瓨鍏ユ祦姘翠緷璧栫殑鏈�澶ф祦姘�
 					Map<String/**娴佹按渚濇嵁**/, String> serialValueMap=	lastMaxSerialValueMap.get(secVO.getOid());
 					serialValueMap.forEach((maxSerialUnitString,serialValue)->{
 						if(StringUtils.isNotBlank(serialValue)){
@@ -1239,6 +1241,11 @@
 							sb.append(serialValue).append(SERIAL_VALUE_SPACE);
 						}
 					});
+				}else{
+					if(secValueMap.containsKey(secVO.getOid())) {//浼佷笟鏍囧噯澶勭悊淇椤哄簭鍙峰凡缁忓瓨鍦ㄧ殑鏁版嵁鍒欎笉闇�瑕佸姩娴佹按渚濊禆琛ㄧ殑鏁版嵁
+						serialUnitString.set(secOdserialUnitMap.get(secVO.getOid()));
+						sb.append(secValueMap.get(secVO.getOid())).append(SERIAL_VALUE_SPACE);
+					}
 				}
 			}
 			String codeDelimiter=thisSecValueList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE));
@@ -1249,7 +1256,7 @@
 		saveSerialValue( finalRuleVO, lastMaxSerialValueMap, maxSerialValueMap);
 
 		allCodeDOList.stream().forEach(
-			allCode -> {DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCode,"codeallcode",null);allCode.setLctid("codeAllCodeLC");}
+			allCode -> {DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCode,"codeallcode");allCode.setLctid("codeAllCodeLC");}
 		);
 
 		Map<String, String> statusMap = allCodeDOList.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus()));

--
Gitblit v1.9.3