From 53950f0fa04a894a2b3880f2da788c837bd84ead Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 27 十一月 2023 09:25:49 +0800 Subject: [PATCH] 修改码段拼接前后缀时判断码值是否为空,为空时不进行拼接 --- 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