From 3d462841427d2f1f94358b46870ddabde4945ca6 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 12 十月 2023 10:39:35 +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 | 41 +++++++++++++++++++++++++++++++----------
1 files changed, 31 insertions(+), 10 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 cf4880e..cf29925 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
@@ -29,6 +29,7 @@
import com.vci.ubcs.starter.web.enumpck.OsCodeFillTypeEnum;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.starter.web.util.VciDateUtil;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -42,6 +43,7 @@
import static com.vci.ubcs.code.constant.MdmEngineConstant.*;
@Service
+@Slf4j
public class MdmProductCodeServiceImpl implements MdmProductCodeService {
/**
@@ -95,10 +97,13 @@
// 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);
String code = cbo.getId();
List<String> serialUnitList = new ArrayList<>();
+ String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD);
String[] secLengths = cbo.getData().get(CODE_SEC_LENGTH_FIELD).split("#");
cbo.getData().remove(CODE_SEC_LENGTH_FIELD);//灏嗘key闄ゅ幓
cbo.getData().remove(IMPORT_ROW_INDEX);//灏嗘key闄ゅ幓
@@ -109,18 +114,18 @@
for (int i = 0; i < secLengths.length; i++) {
CodeBasicSecVO secVO = secVOList.get(i);
String thisSecValue = "";
- if(i == 0){
- thisSecValue = code.contains("#")?code.substring(0,code.indexOf("#")):code;
+ /*if(i == 0){
+ thisSecValue = seclenghStr.contains("#")?code.substring(0,VciBaseUtil.getInt(secLengths[i])):code;
} else if(i == secLengths.length-1){
//鏈�鍚�
- thisSecValue = code.contains("#")?code.substring(code.lastIndexOf("#")):code;
- }else {
+ thisSecValue = seclenghStr.contains("#")?code.substring(VciBaseUtil.getInt(secLengths[i-1]),code.length()):code;
+ }else {*/
int start = 0;
for (int j = 0; j < i; j++) {
- start += VciBaseUtil.getInt(secLengths[j]) + 1;
+ start += VciBaseUtil.getInt(secLengths[j]);
}
- thisSecValue = code.substring(start,start+VciBaseUtil.getInt(secLengths[1]));
- }
+ thisSecValue = code.substring(start,start+VciBaseUtil.getInt(secLengths[i]));
+ // }
if(VciBaseUtil.getBoolean(secVO.getSerialDependFlag())){
serialUnitList.add(thisSecValue);
}
@@ -145,6 +150,12 @@
OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType()))));
}
Map<String, Double> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>());
+ if(thisUnitMaxMap.containsKey(secOid)){
+ Double maxValue= thisUnitMaxMap.getOrDefault(secOid,new Double(-1));
+ if(maxValue>serialDb){
+ serialDb=maxValue;
+ }
+ }
thisUnitMaxMap.put(secOid,serialDb);
maxSerialMap.put(serialUnitString,thisUnitMaxMap);
serialUnFileStringList.add(String.valueOf(serialDb));
@@ -166,6 +177,7 @@
//澶勭悊鏈�澶х殑娴佹按鍙�
List<CodeSerialValue> addSerialValueList = new ArrayList<>();
List<CodeSerialValue> editSerialValueList = new ArrayList<>();
+ log.info("maxSerialMap:----->"+maxSerialMap.size());
maxSerialMap.forEach((serialUnit,secOidMaxMap)->{
secOidMaxMap.forEach((secOid,maxSerial)->{
QueryWrapper<CodeSerialValue> queryWrapper = new QueryWrapper<>();
@@ -175,15 +187,19 @@
queryWrapper.eq("codeSecOid", secOid);
List<CodeSerialValue> serialValueDOS = serialValueMapper.selectList(queryWrapper);
+ log.info("serialValueDOS--->"+serialValueDOS.size());
if (!CollectionUtils.isEmpty(serialValueDOS)) {
CodeSerialValue serialValueDO = serialValueDOS.get(0);
+ log.info("oldmaxSerial--->"+serialValueDO.getMaxSerial()+"---- newmaxSerial---->"+maxSerial);
if(VciBaseUtil.getDouble(serialValueDO.getMaxSerial())<maxSerial){
serialValueDO.setMaxSerial(String.valueOf(maxSerial));
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO);
editSerialValueList.add(serialValueDO);
}
}else{
//娌℃湁
CodeSerialValue serialValueDO = new CodeSerialValue();
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
serialValueDO.setCodeRuleOid(ruleVO.getOid());
serialValueDO.setSerialUnit(serialUnit);
serialValueDO.setCodeSecOid(secOid);
@@ -204,6 +220,7 @@
}
//澶勭悊allCode
if(!CollectionUtils.isEmpty(allCodeDOList)){
+ // TODO 鍘嗗彶鏁版嵁瀵煎叆鐨勬椂鍊欒繖鍎垮伓灏斾細瑙﹀彂绌烘寚閽堝紓甯�
Map<String,List<CodeAllCode>> ruleGroup = allCodeDOList.stream().collect(Collectors.groupingBy(s -> s.getCodeRuleOid()));
Map<String, CodeAllCode> codeDOMap = allCodeDOList.stream().collect(Collectors.toMap(s -> s.getCodeRuleOid() + "${SEP}" + s.getId(), t -> t));
List<CodeAllCode> addCodeDOs = new ArrayList<>();
@@ -314,6 +331,7 @@
//瑕佸瓨鍌ㄦ渶鍚庣殑鍏ㄩ儴allcode
wrapperAllCode(classifyFullInfoBO, ruleVO, cbo, templateVO, allCodeDOList, serialUnitString, sb.toString());
}
+ //澶勭悊鏈�澶ф祦姘�
saveSerialValue( ruleVO, lastMaxSerialValueMap, maxSerialValueMap);
allCodeDOList.stream().forEach(
@@ -516,7 +534,7 @@
secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
} else {
//鎴戜滑闇�瑕佷粠椤跺眰寮�濮嬫壘鍒板綋鍓嶅垎绫讳负姝�
- secValue = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
+ secValue = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
}
} else {
//鎸囧畾灞傦紝鎴戜滑闇�瑕侀�氳繃涓婄骇鐨勬潵鑾峰彇
@@ -525,7 +543,7 @@
secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
} else {
//杩欎釜鎴戜滑闇�瑕佺湅鐪�,灞傜骇鏄笉鏄ぇ浜庝簡鏈�澶у眰绾х殑鏁�
- List<CodeClassifyVO> parentClassifyVOList = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).collect(Collectors.toList());
+ List<CodeClassifyVO> parentClassifyVOList = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).collect(Collectors.toList());
if (secVO.getCodeLevelValue() > (parentClassifyVOList.size() + 1)) {
//鎸囧畾鐨勫眰绾ф瘮褰撳墠鐨勫眰绾ц繕澶т簡锛屾墍浠ュ彧鑳借幏鍙栧綋鍓嶅眰绾т簡
if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(secVO.getCodeGetValueType())) {
@@ -542,7 +560,7 @@
}
} else {
//灏忎簬绛変簬鐨勫叏閮ㄦ嬁鍑烘潵
- secValue = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() <= secVO.getCodeLevelValue().intValue()).sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining());
+ secValue = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() <= secVO.getCodeLevelValue().intValue()).sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining());
}
}
}
@@ -627,6 +645,7 @@
BaseModel cbo, CodeClassifyTemplateVO templateVO,
List<CodeAllCode> allCodeDOList, String serialUnitString, String serialValueString){
CodeAllCode allCodeDO = new CodeAllCode();
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE);
allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
allCodeDO.setCodeRuleOid(ruleVO.getOid());
allCodeDO.setId(cbo.getId());
@@ -661,9 +680,11 @@
//璇存槑鏈�
serialValueDO = maxSerialValueMap.get(secOid).get(unit);
serialValueDO.setMaxSerial(maxSerial.toString());
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO);
editSerialValueDOList.add(serialValueDO);
}else{
serialValueDO = new CodeSerialValue();
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
serialValueDO.setCodeRuleOid(ruleVO.getOid());
serialValueDO.setSerialUnit(unit);
serialValueDO.setCodeSecOid(secOid);
--
Gitblit v1.9.3