From 3418e9674c44eb2cc6aadd676e7ca46ce74bd6b1 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 28 十一月 2023 16:02:04 +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 | 28 +++++++++++++---------------
1 files changed, 13 insertions(+), 15 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 bc8b436..4014bcf 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
@@ -104,11 +104,10 @@
// && StringUtils.isNotBlank(cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD))
){
//鏄巻鍙叉暟鎹鍏�
- //鍘嗗彶鏁版嵁鎵ц鐨勬椂鍊欙紝杩欎釜绯荤粺浼氬緢鍗�
//涓昏鏄负浜嗗綍鍏ユ渶澶ф祦姘村彿鍜宎llcode
//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
List<CodeAllCode> allCodeDOList = new CopyOnWriteArrayList<>();
- Map<String/**娴佹按渚濇嵁**/, ConcurrentHashMap<String/**鐮佹鐨勪富閿�**/,String/**鏈�澶ф祦姘村彿**/>> maxSerialMap = new ConcurrentHashMap<>();
+ Map<String/**娴佹按渚濇嵁**/, HashMap<String/**鐮佹鐨勪富閿�**/,String/**鏈�澶ф祦姘村彿**/>> maxSerialMap = new HashMap<>();
// TODO 澶氱嚎绋嬫祦寮曞彂鐨勯棶棰樺凡淇敼
dataCBOList.parallelStream().forEach(cbo->{
log.info("code:----->"+cbo.getId());
@@ -180,7 +179,7 @@
OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType()));
}
Double newSerialDb= CustomSerialEnum.getDoubleCustomSerialValue(secValue,secVO.getCustomCodeSerialType());
- ConcurrentHashMap<String, String> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new ConcurrentHashMap<>());
+ HashMap<String, String> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>());
Double maxValue=newSerialDb;
if(thisUnitMaxMap.containsKey(secOid)){
String newMaxValue= thisUnitMaxMap.getOrDefault(secOid,"");
@@ -365,7 +364,7 @@
switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
}
//澶勭悊灞炴�х爜娈靛拰娴佹按鐮佹
- Map<String/**娴佹按鐮佹鐨勪富閿�**/, Map<String/**娴佹按渚濇嵁**/, Double>> lastMaxSerialValueMap = new HashMap<>();
+ Map<String/**娴佹按鐮佹鐨勪富閿�**/, Map<String/**娴佹按渚濇嵁**/, String>> lastMaxSerialValueMap = new HashMap<>();
List<CodeAllCode> allCodeDOList = new ArrayList<>();
//宸茬粡瀛樺偍鐨勬渶澶ф祦姘村彿鐨勫唴瀹�
@@ -390,7 +389,7 @@
switchAttrSecValue(attrSecVOList, cbo, thisSecValueList, attrSevIsSerialDepend, thisSerialUnitList);
String serialUnitString = thisSerialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : thisSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
- switchSerialSecValue(serialSecVOList, attrSevIsSerialDepend, finalRuleVO, serialUnitString, maxSerialValueMap, thisSecValueList, lastMaxSerialValueMap, i == 0);
+ switchSerialSecValue(cbo,serialSecVOList, attrSevIsSerialDepend, finalRuleVO, serialUnitString, maxSerialValueMap, thisSecValueList, lastMaxSerialValueMap, i == 0);
//缁勮缂栫爜鐨勫��
cbo.setId(thisSecValueList.stream().collect(Collectors.joining()));
@@ -399,9 +398,9 @@
//鎶婄爜娈甸噷闈㈤兘鎵句竴涓嬫祦姘村彿
for (int j = 0; j < serialSecVOList.size(); j++) {
CodeBasicSecVO secVO = serialSecVOList.get(j);
- Double serialValue = lastMaxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>()).getOrDefault(serialUnitString, 0d);
+ String serialValue = lastMaxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>()).getOrDefault(serialUnitString, "");
if (serialValue != null) {
- sb.append(String.valueOf(serialValue.longValue())).append(SERIAL_VALUE_SPACE);
+ sb.append(serialValue).append(SERIAL_VALUE_SPACE);
}
}
//瑕佸瓨鍌ㄦ渶鍚庣殑鍏ㄩ儴allcode
@@ -419,7 +418,6 @@
allCodeDOList.stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmname())).forEach(s -> {
s.setLcStatus(statusMap.get(s.getOid()));
});
-
//閫氳繃ID鏉ヨ繘琛屽幓閲�
List<CodeAllCode> distinctCodeAllCOdes = allCodeDOList.stream().collect(Collectors
@@ -528,10 +526,10 @@
* @param lastMaxSerialValueMap 灏佽鍚�
* @param firstData 鏄惁涓虹涓�鏉℃暟鎹�
*/
- private void switchSerialSecValue(List<CodeBasicSecVO> serialSecVOList,boolean attrSevIsSerialDepend,
+ private void switchSerialSecValue(BaseModel cbo, List<CodeBasicSecVO> serialSecVOList,boolean attrSevIsSerialDepend,
CodeRuleVO ruleVO,String serialUnitString,
Map<String/**鐮佹鐨勪富閿�**/,Map<String/**娴佹按渚濇嵁**/,CodeSerialValue>> maxSerialValueMap,List<String> thisSecValueList,
- Map<String/**鐮佹鐨勪富閿�**/,Map<String/**娴佹按渚濇嵁**/, Double>> lastMaxSerialValueMap,boolean firstData){
+ Map<String/**鐮佹鐨勪富閿�**/,Map<String/**娴佹按渚濇嵁**/, String>> lastMaxSerialValueMap,boolean firstData){
if (!CollectionUtils.isEmpty(serialSecVOList)) {
Map<String,String> secIdserialValueMap=new LinkedHashMap<>();
for (int j = 0; j < serialSecVOList.size(); j++) {
@@ -610,7 +608,7 @@
//闃叉鍦ㄦ坊鍔犵殑鍦版柟娌℃湁鎺у埗姝g‘
fillLength = VciBaseUtil.getInt(secVO.getCodeSecLength());
}
- String serialString = String.valueOf(thisSerialValue.longValue());
+ serialString = thisSerialValue;
serialString = fillString(fillLength, OsCodeFillTypeEnum.forValue(secVO.getCodeFillType()), serialString, secVO.getCodeFillSeparator());
for (int z = 0; z < thisSecValueList.size(); z++) {
@@ -772,20 +770,20 @@
/**
* 鎷兼帴鍓嶅悗缂�
- * @param secVO
- * @param secValue
+ * @param secVO 鐮佹
+ * @param secValue 鐮佸��
* @return
*/
private String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){
StringBuilder joinSecValue = new StringBuilder();
// 鎷兼帴鍓嶇紑
- if (Func.isNotEmpty(secVO.getPrefixCode())) {
+ if (Func.isNotEmpty(secVO.getPrefixCode()) && Func.isNotEmpty(secValue)) {
joinSecValue = joinSecValue.append(secVO.getPrefixCode());
}
// 鍦ㄤ腑闂存嫾鎺ュ��
joinSecValue.append(secValue);
// 鎷兼帴鍚庣紑
- if(Func.isNotEmpty(secVO.getSuffixCode())){
+ if(Func.isNotEmpty(secVO.getSuffixCode()) && Func.isNotEmpty(secValue)){
joinSecValue = joinSecValue.append(secVO.getSuffixCode());
}
return joinSecValue.toString();
--
Gitblit v1.9.3