Browse Source

资产导入问题处理

master
review512jwy@163.com 15 hours ago
parent
commit
919fb98d89
  1. 66
      data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/MonitoringAssetServiceImpl.java

66
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 //process data
StringBuilder finalMsg = new StringBuilder(); StringBuilder finalMsg = new StringBuilder();
boolean finalCheckPassed = true; boolean finalCheckPassed = true;
Map<String, List<BasicMonitoringAsset>> insertAssetInfo = new HashMap<>(); Map<String, List<BasicMonitoringAsset>> insertAssetInfo = new HashMap<>();
Map<String, List<BasicMonitoringAsset>> updateAssetInfo = new HashMap<>(); Map<String, List<BasicMonitoringAsset>> updateAssetInfo = new HashMap<>();
@ -543,7 +543,7 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
Long currentUnix = System.currentTimeMillis(); Long currentUnix = System.currentTimeMillis();
List<Long> subCompanyList = Arrays.asList(companyId); List<Long> subCompanyList = Arrays.asList(companyId);
// Retrieve buildings under all sub-companies that have permissions // Retrieve buildings under all sub-companies that have permissions
BuildingSearchParams pageSearchParam = new BuildingSearchParams(); BuildingSearchParams pageSearchParam = new BuildingSearchParams();
pageSearchParam.setCompanyIdList(subCompanyList); pageSearchParam.setCompanyIdList(subCompanyList);
@ -573,13 +573,13 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
MonitoringAssetSearchParams assetSearchParam = new MonitoringAssetSearchParams(); MonitoringAssetSearchParams assetSearchParam = new MonitoringAssetSearchParams();
assetSearchParam.setCompanyIdList(subCompanyList); assetSearchParam.setCompanyIdList(subCompanyList);
List<MonitoringAssetPageVO> dbAssetList = basicMonitoringAssetMapperExt.getListPage4Import(assetSearchParam); List<MonitoringAssetPageVO> dbAssetList = basicMonitoringAssetMapperExt.getListPage4Import(assetSearchParam);
Set<String> udfAssetIdSet = dbAssetList.stream() // Set<String> udfAssetIdSet = dbAssetList.stream()
.map(vo -> vo.getUdfBuildingId() + "$" + vo.getSymbol()) // .map(vo -> vo.getUdfBuildingId() + "$" + vo.getSymbol())
.collect(Collectors.toSet()); // .collect(Collectors.toSet());
Map<String, MonitoringAssetPageVO> udfAssetIdMap = dbAssetList.stream() Map<String, MonitoringAssetPageVO> udfAssetIdMap = dbAssetList.stream()
.filter(vo -> StringUtils.isNotBlank(vo.getSymbol())) .filter(vo -> StringUtils.isNotBlank(vo.getSymbol()))
.collect(Collectors.toMap( .collect(Collectors.toMap(
vo -> vo.getUdfBuildingId() + "$" +vo.getUdfSpaceId() + "$" +vo.getSymbol(), vo -> vo.getUdfBuildingId() + "$" +vo.getSymbol(),
vo -> vo, vo -> vo,
(existing, replacement) -> replacement//用后来的值替换原有值 (existing, replacement) -> replacement//用后来的值替换原有值
)); ));
@ -608,7 +608,7 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
List<AssetClassPageVO> dbSmallList = basicAssetClassMapperExt.getListPage(smallSearchParam); List<AssetClassPageVO> dbSmallList = basicAssetClassMapperExt.getListPage(smallSearchParam);
Map<String, AssetClassPageVO> dbSmallMapping = dbSmallList.stream().collect( Map<String, AssetClassPageVO> dbSmallMapping = dbSmallList.stream().collect(
Collectors.toMap(k -> k.getClassBigName()+k.getClassMediumName()+k.getAssetClassName(), k->k)); Collectors.toMap(k -> k.getClassBigName()+k.getClassMediumName()+k.getAssetClassName(), k->k));
List<String> noAssetDul = new ArrayList<>(); List<String> noAssetDul = new ArrayList<>();
for (int i = 0; i < importList.size(); i++) { for (int i = 0; i < importList.size(); i++) {
@ -680,28 +680,23 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
} else { } else {
noDuplicatesData.add(lineInfo); 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 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)) { if (!udfBuildingIdMap.containsKey(compBuilding)) {
lineError = true; lineError = true;
commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "buildingNotFound")); 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 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())){ if (!udfSpaceIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getUdfSpaceId())){
lineError = true; lineError = true;
commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "spaceNotFound")); commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "spaceNotFound"));
} }
// Check if [company name + asset symbol] in the spreadsheet duplicates any existing assets in the database. // 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 int assetOptFlag = 1;// 1 indicates insert, 2 indicates update
if (StringUtils.isNotBlank(buildingExcelCn.getSymbol()) && if (StringUtils.isNotBlank(buildingExcelCn.getSymbol()) && udfAssetIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getSymbol())) {
(udfAssetIdMap.containsKey(compBuilding+ "$" + buildingExcelCn.getUdfSpaceId()+ "$" + buildingExcelCn.getSymbol())
||
udfAssetIdSet.contains(compBuilding + "$" + buildingExcelCn.getSymbol())
)
) {
if (assetDuplicateOptType == 1) { if (assetDuplicateOptType == 1) {
lineError = true; lineError = true;
commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "dbAssetDuplicate")); commonOpt.appendMsg(lineMsg, msgLanguageChange.getParameterMapByCode(languageType, "dbAssetDuplicate"));
@ -722,12 +717,9 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
// Process asset // Process asset
if (StringUtils.isNotBlank(buildingExcelCn.getSymbol())) { if (StringUtils.isNotBlank(buildingExcelCn.getSymbol())) {
String compAsset = buildingExcelCn.getUdfBuildingId() String compAsset = buildingExcelCn.getUdfBuildingId()
+ "$" + buildingExcelCn.getUdfSpaceId()
+ "$" + buildingExcelCn.getSymbol(); + "$" + buildingExcelCn.getSymbol();
BasicMonitoringAsset basicMonitoringAsset = new BasicMonitoringAsset(); BasicMonitoringAsset basicMonitoringAsset = new BasicMonitoringAsset();
basicMonitoringAsset.setCompanyId(companyId); basicMonitoringAsset.setCompanyId(companyId);
basicMonitoringAsset.setCreateTime(currentUnix);
basicMonitoringAsset.setCreatorId(userId);
basicMonitoringAsset.setName(buildingExcelCn.getAssetName()); basicMonitoringAsset.setName(buildingExcelCn.getAssetName());
if (StringUtils.isNotBlank(buildingExcelCn.getClassBig())) { if (StringUtils.isNotBlank(buildingExcelCn.getClassBig())) {
basicMonitoringAsset.setClassBigId( basicMonitoringAsset.setClassBigId(
@ -759,15 +751,19 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
basicMonitoringAsset.setSpecifications6(buildingExcelCn.getSpecifications6()); basicMonitoringAsset.setSpecifications6(buildingExcelCn.getSpecifications6());
if (!noAssetDul.contains(compAsset)) { if (!noAssetDul.contains(compAsset)) {
String compSpace = buildingExcelCn.getUdfBuildingId() String compSpace = buildingExcelCn.getUdfBuildingId()
+ "$" + buildingExcelCn.getUdfSpaceId(); + "$" + buildingExcelCn.getUdfSpaceId();
basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(compSpace).getSpaceId());
noAssetDul.add(compAsset); noAssetDul.add(compAsset);
if(1 == assetOptFlag) { if(1 == assetOptFlag) {
if (!insertAssetInfo.containsKey(compSpace)) { if (!insertAssetInfo.containsKey(compSpace)) {
List<BasicMonitoringAsset> asset = new ArrayList<>(); List<BasicMonitoringAsset> asset = new ArrayList<>();
basicMonitoringAsset.setCreateTime(currentUnix);
basicMonitoringAsset.setCreatorId(userId);
asset.add(basicMonitoringAsset); asset.add(basicMonitoringAsset);
insertAssetInfo.put(compSpace, asset); insertAssetInfo.put(compSpace, asset);
} else { } else {
@ -776,6 +772,8 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
} else { } else {
if (!updateAssetInfo.containsKey(compAsset)) { if (!updateAssetInfo.containsKey(compAsset)) {
List<BasicMonitoringAsset> asset = new ArrayList<>(); List<BasicMonitoringAsset> asset = new ArrayList<>();
basicMonitoringAsset.setModifyTime(currentUnix);;
basicMonitoringAsset.setModifierId(userId);
asset.add(basicMonitoringAsset); asset.add(basicMonitoringAsset);
updateAssetInfo.put(compAsset, asset); updateAssetInfo.put(compAsset, asset);
} else { } else {
@ -791,18 +789,18 @@ public class MonitoringAssetServiceImpl implements MonitoringAssetService {
if (insertAssetInfo != null && !insertAssetInfo.isEmpty()) { if (insertAssetInfo != null && !insertAssetInfo.isEmpty()) {
insertAssetInfo.forEach((key, value) -> { insertAssetInfo.forEach((key, value) -> {
for (BasicMonitoringAsset basicMonitoringAsset : value) { for (BasicMonitoringAsset basicMonitoringAsset : value) {
basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(key).getSpaceId()); basicMonitoringAsset.setSpaceId(udfSpaceIdMap.get(key).getSpaceId());
basicMonitoringAssetMapperExt.insertSelective(basicMonitoringAsset); basicMonitoringAssetMapperExt.insertSelective(basicMonitoringAsset);
} }
}); });
} }
if (updateAssetInfo != null && !updateAssetInfo.isEmpty()) { if (updateAssetInfo != null && !updateAssetInfo.isEmpty()) {
updateAssetInfo.forEach((key, value) -> { updateAssetInfo.forEach((key, value) -> {
for (BasicMonitoringAsset basicMonitoringAsset : value) { for (BasicMonitoringAsset basicMonitoringAsset : value) {
basicMonitoringAsset.setEquipmentId(udfAssetIdMap.get(key).getAssetId()); basicMonitoringAsset.setEquipmentId(udfAssetIdMap.get(key).getAssetId());
basicMonitoringAssetMapperExt.updateByPrimaryKeySelective(basicMonitoringAsset); basicMonitoringAssetMapperExt.updateByPrimaryKeySelective(basicMonitoringAsset);
} }
}); });
} }
} else { } else {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, finalMsg.toString()); return new SimpleDataResponse(ResponseCode.MSG_ERROR, finalMsg.toString());

Loading…
Cancel
Save