From 919fb98d8973e733ce14d979a05e4dda5c0fefbe Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Wed, 26 Nov 2025 08:11:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E4=BA=A7=E5=AF=BC=E5=85=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MonitoringAssetServiceImpl.java | 66 +++++++++---------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/MonitoringAssetServiceImpl.java b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/MonitoringAssetServiceImpl.java index 0e26c0a..dab9d30 100644 --- a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/MonitoringAssetServiceImpl.java +++ b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/MonitoringAssetServiceImpl.java @@ -533,7 +533,7 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { //process data StringBuilder finalMsg = new StringBuilder(); boolean finalCheckPassed = true; - + Map> insertAssetInfo = new HashMap<>(); Map> updateAssetInfo = new HashMap<>(); @@ -543,7 +543,7 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { Long currentUnix = System.currentTimeMillis(); List subCompanyList = Arrays.asList(companyId); - + // Retrieve buildings under all sub-companies that have permissions BuildingSearchParams pageSearchParam = new BuildingSearchParams(); pageSearchParam.setCompanyIdList(subCompanyList); @@ -573,13 +573,13 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { MonitoringAssetSearchParams assetSearchParam = new MonitoringAssetSearchParams(); assetSearchParam.setCompanyIdList(subCompanyList); List dbAssetList = basicMonitoringAssetMapperExt.getListPage4Import(assetSearchParam); - Set udfAssetIdSet = dbAssetList.stream() - .map(vo -> vo.getUdfBuildingId() + "$" + vo.getSymbol()) - .collect(Collectors.toSet()); +// Set udfAssetIdSet = dbAssetList.stream() +// .map(vo -> vo.getUdfBuildingId() + "$" + vo.getSymbol()) +// .collect(Collectors.toSet()); Map udfAssetIdMap = dbAssetList.stream() .filter(vo -> StringUtils.isNotBlank(vo.getSymbol())) .collect(Collectors.toMap( - vo -> vo.getUdfBuildingId() + "$" +vo.getUdfSpaceId() + "$" +vo.getSymbol(), + vo -> vo.getUdfBuildingId() + "$" +vo.getSymbol(), vo -> vo, (existing, replacement) -> replacement//用后来的值替换原有值 )); @@ -608,7 +608,7 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { List dbSmallList = basicAssetClassMapperExt.getListPage(smallSearchParam); Map dbSmallMapping = dbSmallList.stream().collect( Collectors.toMap(k -> k.getClassBigName()+k.getClassMediumName()+k.getAssetClassName(), k->k)); - + List noAssetDul = new ArrayList<>(); for (int i = 0; i < importList.size(); i++) { @@ -680,28 +680,23 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { } else { noDuplicatesData.add(lineInfo); } - + // If floor, room, and asset are all empty, it indicates importing a building. Check if [company name + building name] in the spreadsheet duplicates any existing buildings in the database. - if (!udfBuildingIdMap.containsKey(compBuilding)) { - lineError = true; - commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "buildingNotFound")); + if (!udfBuildingIdMap.containsKey(compBuilding)) { + lineError = true; + commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "buildingNotFound")); } // If asset is empty, it indicates importing a room. Check if [company name + room name] in the spreadsheet duplicates any existing rooms in the database. - if (!udfSpaceIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getUdfSpaceId())){ - lineError = true; - commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "spaceNotFound")); + if (!udfSpaceIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getUdfSpaceId())){ + lineError = true; + commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "spaceNotFound")); } // Check if [company name + asset symbol] in the spreadsheet duplicates any existing assets in the database. int assetOptFlag = 1;// 1 indicates insert, 2 indicates update - if (StringUtils.isNotBlank(buildingExcelCn.getSymbol()) && - (udfAssetIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getUdfSpaceId()+ "$" + buildingExcelCn.getSymbol()) - || - udfAssetIdSet.contains(compBuilding + "$" + buildingExcelCn.getSymbol()) - ) - ) { + if (StringUtils.isNotBlank(buildingExcelCn.getSymbol()) && udfAssetIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getSymbol())) { if (assetDuplicateOptType == 1) { lineError = true; commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "dbAssetDuplicate")); @@ -722,12 +717,9 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { // Process asset if (StringUtils.isNotBlank(buildingExcelCn.getSymbol())) { String compAsset = buildingExcelCn.getUdfBuildingId() - + "$" + buildingExcelCn.getUdfSpaceId() + "$" + buildingExcelCn.getSymbol(); BasicMonitoringAsset basicMonitoringAsset = new BasicMonitoringAsset(); basicMonitoringAsset.setCompanyId(companyId); - basicMonitoringAsset.setCreateTime(currentUnix); - basicMonitoringAsset.setCreatorId(userId); basicMonitoringAsset.setName(buildingExcelCn.getAssetName()); if (StringUtils.isNotBlank(buildingExcelCn.getClassBig())) { basicMonitoringAsset.setClassBigId( @@ -759,15 +751,19 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { basicMonitoringAsset.setSpecifications6(buildingExcelCn.getSpecifications6()); if (!noAssetDul.contains(compAsset)) { - + String compSpace = buildingExcelCn.getUdfBuildingId() + "$" + buildingExcelCn.getUdfSpaceId(); - + + basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(compSpace).getSpaceId()); + noAssetDul.add(compAsset); - + if(1 == assetOptFlag) { if (!insertAssetInfo.containsKey(compSpace)) { List asset = new ArrayList<>(); + basicMonitoringAsset.setCreateTime(currentUnix); + basicMonitoringAsset.setCreatorId(userId); asset.add(basicMonitoringAsset); insertAssetInfo.put(compSpace, asset); } else { @@ -776,6 +772,8 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { } else { if (!updateAssetInfo.containsKey(compAsset)) { List asset = new ArrayList<>(); + basicMonitoringAsset.setModifyTime(currentUnix);; + basicMonitoringAsset.setModifierId(userId); asset.add(basicMonitoringAsset); updateAssetInfo.put(compAsset, asset); } else { @@ -791,18 +789,18 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService { if (insertAssetInfo != null && !insertAssetInfo.isEmpty()) { insertAssetInfo.forEach((key, value) -> { for (BasicMonitoringAsset basicMonitoringAsset : value) { - basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(key).getSpaceId()); - basicMonitoringAssetMapperExt.insertSelective(basicMonitoringAsset); - } - }); + basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(key).getSpaceId()); + basicMonitoringAssetMapperExt.insertSelective(basicMonitoringAsset); + } + }); } if (updateAssetInfo != null && !updateAssetInfo.isEmpty()) { updateAssetInfo.forEach((key, value) -> { for (BasicMonitoringAsset basicMonitoringAsset : value) { - basicMonitoringAsset.setEquipmentId(udfAssetIdMap.get(key).getAssetId()); - basicMonitoringAssetMapperExt.updateByPrimaryKeySelective(basicMonitoringAsset); - } - }); + basicMonitoringAsset.setEquipmentId(udfAssetIdMap.get(key).getAssetId()); + basicMonitoringAssetMapperExt.updateByPrimaryKeySelective(basicMonitoringAsset); + } + }); } } else { return new SimpleDataResponse(ResponseCode.MSG_ERROR, finalMsg.toString());