From 95a283a441c93ce5ab63df93bc39beadd2f34f51 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 04 三月 2024 20:15:04 +0800 Subject: [PATCH] 近义词查询规则功能完善 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 61 ++++++++++++++++++------------ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java | 2 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 2 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java | 23 +++++++++++ 5 files changed, 63 insertions(+), 27 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java index 4a40baf..f3434ad 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java @@ -27,6 +27,11 @@ */ private String keyAttrRuleInfo; + /** + * 杩戜箟璇嶆煡璇㈠睘鎬ф牎楠岃鍒欑殑淇℃伅 + */ + private String synonymRuleInfo; + /** * 鍏抽敭灞炴�ф牎楠屽悗锛岄噸澶嶇殑琛屽彿 */ @@ -62,7 +67,23 @@ */ private Set<String> unPassVerifyRowIndexSet = new HashSet<>(); - public Set<String> getUnPassVerifyRowIndexSet() { + public void setSuccess(boolean success) { + this.success = success; + } + + public void setSynonymRuleInfo(String synonymRuleInfo) { + this.synonymRuleInfo = synonymRuleInfo; + } + + public boolean isSuccess() { + return success; + } + + public String getSynonymRuleInfo() { + return synonymRuleInfo; + } + + public Set<String> getUnPassVerifyRowIndexSet() { return unPassVerifyRowIndexSet; } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java index 389d332..9b781f2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java @@ -17,6 +17,7 @@ package com.vci.ubcs.code.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; import com.vci.ubcs.code.entity.CodeSynonym; import com.vci.ubcs.code.service.ICodeSynonymService; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; @@ -93,6 +94,7 @@ @ApiOperationSupport(order = 4) @ApiOperation(value = "鏂板", notes = "浼犲叆codeSynonym") public R save(@Valid @RequestBody CodeSynonym codeSynonym) { + codeSynonym.setLcStatus(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED); return R.status(codeSynonymService.save(codeSynonym)); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index e808073..7605d5f 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -1322,7 +1322,7 @@ public String getValueToSynony(/*杩戜箟璇嶆煡璇㈣鍒�*/List<CodeSynonym> codeSynonymMaps,String value){ // 鑾峰彇骞跺垽鏂槸鍚﹂厤缃簡杩戜箟璇嶆煡璇㈣鍒� // TODO锛氳繎涔夎瘝鏇挎崲鎴愭簮鍊硷紙婧愬�兼槸姝g‘鐨勫�硷紝杩戜箟璇嶆槸鐩稿綋浜庤緭閿欑瑪璇殑瀛楃锛� - if(!codeSynonymMaps.isEmpty()){ + if(Func.isNotEmpty(codeSynonymMaps)){ for (int i = 0; i < codeSynonymMaps.size(); i++) { value = value.replace(codeSynonymMaps.get(i).getSynonymValue(),codeSynonymMaps.get(i).getSourceValue()); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index 6f42765..db7167c 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java @@ -206,8 +206,6 @@ @Autowired private SaveLogUtil saveLogUtil; - - /** * 瀹㈡埛鐜板満excel涓鸿�佺増鏈紝瀵煎嚭鐨勬�绘暟闄愬埗涓�65535 */ @@ -944,12 +942,12 @@ Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){ selfRepeatRowIndexList.stream().forEach(rowIndex->{ - errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍦ㄥ綋鍓嶅鐞嗙殑鏁版嵁鏂囦欢涓叧閿睘鎬ч噸澶�" ); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format(";鍦ㄥ綋鍓嶅鐞嗙殑鏁版嵁鏂囦欢涓叧閿睘鎬ч噸澶峓%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ - errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,"") ); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } //鍒嗙被娉ㄥ叆 @@ -1216,12 +1214,12 @@ Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if (!CollectionUtils.isEmpty(selfRepeatRowIndexList)) { selfRepeatRowIndexList.stream().forEach(rowIndex -> { - errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";鍦ㄥ綋鍓峞xcel鏂囦欢涓叧閿睘鎬ч噸澶�"); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format(";鍦ㄥ綋鍓峞xcel鏂囦欢涓叧閿睘鎬ч噸澶峓%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } if (!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)) { keyAttrRepeatRowIndexList.stream().forEach(rowIndex -> { - errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex, "")); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } //4.鏍¢獙瑙勫垯 @@ -1733,12 +1731,12 @@ Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){ selfRepeatRowIndexList.stream().forEach(rowIndex->{ - errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍦ㄥ綋鍓嶅鐞嗙殑鏁版嵁鏂囦欢涓叧閿睘鎬ч噸澶�" ); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format(";鍦ㄥ綋鍓嶅鐞嗙殑鏁版嵁鏂囦欢涓叧閿睘鎬ч噸澶峓%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ - errorMap.put(rowIndex,"鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,"")); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } //鍒嗙被娉ㄥ叆 @@ -2232,7 +2230,7 @@ Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ - errorMap.put(rowIndex,"鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,"")); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } //4.鏍¢獙瑙勫垯 @@ -2456,7 +2454,7 @@ resultDataObjectDetailDO.setMsg(errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�ч噸澶�"); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); */ - errorKeyMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";浼犲叆鐨勬暟鎹腑鍏抽敭灞炴�ч噸澶�"); + errorKeyMap.put(rowIndex, errorKeyMap.getOrDefault(rowIndex, "") + String.format(";浼犲叆鐨勬暟鎹腑鍏抽敭灞炴�ч噸澶峓%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } /**** @@ -2477,7 +2475,7 @@ if(indexTODataMap.containsKey(rowIndex)){ List<BaseModel> baseModelList= indexTODataMap.get(rowIndex); } - errorKeyMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorKeyMap.getOrDefault(rowIndex,"")); + errorKeyMap.put(rowIndex, errorKeyMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); }); } //鏍¢獙灞炴�ф槸鍚︽纭敊璇俊鎭� @@ -4393,6 +4391,7 @@ }); } } + /** * 鏍¢獙鍏抽敭灞炴�э紝鍜岃繎涔夎瘝鏌ヨ瑙勫垯 * @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭� @@ -4425,10 +4424,17 @@ //1. 鎴戜滑闇�瑕佸厛鍒ゆ柇excel瀵煎叆鐨勫唴瀹规槸鍚︽纭� CodeImportResultVO resultVO = new CodeImportResultVO(); - resultVO.setKeyAttrRuleInfo(String.format(keyRuleVO ==null?"":"鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}", - new String[]{trim?"鏄�":"鍚�",ignoreCase?"鏄�":"鍚�",ignoreWidth?"鏄�":"鍚�",trimAll?"鏄�":"鍚�"})); + StringBuilder synonymResString = new StringBuilder(); + if(Func.isNotEmpty(codeSynonymMaps)){ + codeSynonymMaps.keySet().stream().forEach(item->{ + synonymResString.append(item); + synonymResString.append("锛�"); + }); + } + resultVO.setSynonymRuleInfo(Func.isEmpty(codeSynonymMaps) ? "":String.format("浠ヤ笅[%s]琚缃簡杩戜箟璇嶆煡璇㈣鍒欑殑鍏抽敭灞炴��,涓嚭鐜颁簡閲嶅锛�",synonymResString)); + resultVO.setKeyAttrRuleInfo(keyRuleVO == null ? "":String.format("鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{%s},蹇界暐澶у皬鍐�--{%s},蹇界暐鍏ㄥ崐瑙�--{%s},蹇界暐鍏ㄩ儴绌烘牸--{%s}" + ,trim?"鏄�":"鍚�",ignoreCase?"鏄�":"鍚�",ignoreWidth?"鏄�":"鍚�",trimAll?"鏄�":"鍚�")); //resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(keyAttrMap,cboList,keyRuleVO)); - // 鍏堝湪琛ㄦ牸涓煡璇㈠叧閿睘鎬у拰杩戜箟璇嶈浆鎹㈠悗閲嶅鐨勫垪 getSelfRepeatRowIndex(keyAttrMap,cboList,keyRuleVO,codeSynonymMaps,resultVO); // 鍐嶅湪琛ㄦ牸涓煡璇㈣繎涔夎瘝鏌ヨ瑙勫垯鐨勫垪 @@ -4623,7 +4629,7 @@ private void getSelfRepeatRowIndex(Map<String/**灞炴�х殑缂栧彿**/, CodeClassifyTemplateAttrVO> ketAttrMap, List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,/*杩戜箟璇嶆煡璇㈣鍒�*/Map<String,List<CodeSynonym>> codeSynonymMaps, CodeImportResultVO resultVO){ Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>(); - Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>(); + Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new ConcurrentHashMap<>(); boolean trimAll =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); //鍏ㄩ儴鍘荤┖鐨勪紭鍏堢骇澶т簬鍘荤┖ boolean trim =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag()); @@ -4631,17 +4637,16 @@ boolean ignoreWidth = keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag()); //蹇呴』灏嗗睘鎬ф寜鐓ч『搴忔帓搴忓ソ List<CodeClassifyTemplateAttrVO> attrVOList = ketAttrMap.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList()); - Map<String/**琛屽彿**/,String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/> rowIndexKeyStringMap = new HashMap<>(); - Map<String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/,String/**绗竴涓叧閿睘鎬х殑鏁版嵁oid**/> okOidKeyStringMap = new HashMap<>(); - dataList.parallelStream().forEach(cbo-> { + Map<String/**琛屽彿**/,String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/> rowIndexKeyStringMap = new ConcurrentHashMap<>(); + Map<String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/,String/**绗竴涓叧閿睘鎬х殑鏁版嵁oid**/> okOidKeyStringMap = new ConcurrentHashMap<>(); + dataList.stream().forEach(cbo-> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); String oid=cbo.getOid(); StringBuilder sb = new StringBuilder(); - // TODO锛� 2024-02-25鏀归�犲疄鐜拌繎涔夎瘝鏌ヨ瑙勫垯鍔熻兘锛涘叧閿睘鎬ч噸澶嶆牎楠屽�煎鐞� attrVOList.stream().forEach(item->{ String attrId = item.getId().toLowerCase(Locale.ROOT); - String value = cbo.getAttributeValue( attrId); + String value = cbo.getAttributeValue(attrId); if (value == null) { value = ""; } @@ -4675,11 +4680,12 @@ } }else { okOidKeyStringMap.put(sb.toString(),oid); - rowIndexKeyStringMap.put(rowIndex, sb.toString()); + rowIndexKeyStringMap.put(rowIndex, keyString); } }); //鍥犱负鍙槸鍏抽敭灞炴�ч噸澶嶏紝鎵�浠ユ垜浠笉鑳介噸澶嶇殑澶氭潯閫変竴鏉℃潵鎶ラ敊 - resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList); +// resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList); + resultVO.setSelfRepeatRowIndexList(selfRepeatRowIndexList); resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap); } @@ -5112,6 +5118,7 @@ bladeRedis.expire(uuid, BATCHADD_REDIS_TIME);//redis杩囨湡鏃堕棿 } } + /** * 鎷疯礉涓氬姟绫诲瀷鍒癿ap * @param cbo 涓氬姟鏁版嵁 @@ -5353,12 +5360,14 @@ Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if (!CollectionUtils.isEmpty(selfRepeatRowIndexList)) { selfRepeatRowIndexList.stream().forEach(rowIndex -> { - errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";鍦ㄥ綋鍓峞xcel鏂囦欢涓叧閿睘鎬ч噸澶�"); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format(";浼犲叆鐨勬暟鎹腑鍏抽敭灞炴�ч噸澶峓%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); + // errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";鍦ㄥ綋鍓峞xcel鏂囦欢涓叧閿睘鎬ч噸澶�"); }); } if (!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)) { keyAttrRepeatRowIndexList.stream().forEach(rowIndex -> { - errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex, "")); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + String.format("鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅[%s],[%s];",keyResultVO.getKeyAttrRuleInfo(),keyResultVO.getSynonymRuleInfo())); + // errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex, "")); }); } Map<String,List<WriteExcelData>> shetNameMap=new HashMap<>(); @@ -5404,6 +5413,7 @@ } return excelFileName; } + public void batchSwitchCheckExist(Map<String,String> errorMap,List<ClientBusinessObject> cboList,CodeClassifyFullInfoBO classifyFullInfo,CodeClassifyTemplateVO templateVO,ExecGroupCodePortDataDTO execGroupCodePortDataDTO,Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap){ List<BaseModel> oldBaseModelList=new ArrayList<>(); List<CodeAllCode> codeAllCodeList=new ArrayList<>(); @@ -5523,6 +5533,7 @@ execGroupCodePortDataDTO.setOldList(oldBaseModelList); execGroupCodePortDataDTO.setCodeAllCodeList(codeAllCodeList); } + /** * * @param fieldIndexMap @@ -5551,6 +5562,7 @@ cboList.add(cbo); }); } + /*** * 闆嗗洟瀵煎嚭妯℃澘灞炴�ф槧灏勪俊鎭幏鍙� * @param templateVO @@ -5614,6 +5626,7 @@ } + /*** * 鏌ヨ鏈湁闆嗗洟鐮佺殑鏁版嵁 * @param classifyFullInfo 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 3f64e15..e7a1835 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 @@ -1215,7 +1215,7 @@ for (int j = 0; j < serialSecVOList.size(); j++) { CodeBasicSecVO secVO = serialSecVOList.get(j); if(lastMaxSerialValueMap.containsKey(secVO.getOid())){//姝や负鏈�鍚庨渶瑕佸瓨鍏ユ祦姘翠緷璧栫殑鏈�澶ф祦姘� - Map<String/**娴佹按渚濇嵁**/, String> serialValueMap= lastMaxSerialValueMap.get(secVO.getOid()); + Map<String/**娴佹按渚濇嵁**/, String> serialValueMap = lastMaxSerialValueMap.get(secVO.getOid()); serialValueMap.forEach((maxSerialUnitString,serialValue)->{ if(StringUtils.isNotBlank(serialValue)){ serialUnitString.set(maxSerialUnitString); -- Gitblit v1.9.3