@ -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 . get Symbol ( ) ,
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 ( ) ) ;