diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java index 4b602c4..b96278c 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java @@ -15,12 +15,9 @@ import java.util.stream.Collectors; import com.dongjian.dashboard.back.common.Constants; import com.dongjian.dashboard.back.common.response.ResponseCode; import com.dongjian.dashboard.back.common.response.SimpleDataResponse; -import com.dongjian.dashboard.back.dao.ex.BasicUserMapperExt; -import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt; -import com.dongjian.dashboard.back.dao.ex.UserBuildingRelationMapperExt; +import com.dongjian.dashboard.back.dao.ex.*; import com.dongjian.dashboard.back.dto.device.LineDataSearchParams; -import com.dongjian.dashboard.back.model.DeviceRawdataRealtime; -import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample; +import com.dongjian.dashboard.back.model.*; import com.dongjian.dashboard.back.util.DESUtil; import com.dongjian.dashboard.back.vo.building.BindedBuildingVO; import com.dongjian.dashboard.back.vo.company.AuroraInfo; @@ -35,8 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import com.dongjian.dashboard.back.dao.ex.BasicCompanyMapperExt; -import com.dongjian.dashboard.back.model.BasicCompany; import com.dongjian.dashboard.back.util.CommonUtil; /** @@ -62,6 +57,8 @@ public class CommonOpt { private UserBuildingRelationMapperExt userBuildingRelationMapperExt; @Autowired private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt; + @Autowired + private DeviceInfoMapperExt deviceInfoMapperExt; /** @@ -475,6 +472,24 @@ public class CommonOpt { )); } + public Map queryDeviceInfo111Map(List deviceIdList111) { + if (CollectionUtils.isEmpty(deviceIdList111)) { + return Collections.emptyMap(); + } + + DeviceInfoExample example = new DeviceInfoExample(); + example.createCriteria().andDeviceIdIn(deviceIdList111).andFlagEqualTo(0); + + return deviceInfoMapperExt + .selectByExampleWithBLOBs(example) + .stream() + .collect(Collectors.toMap( + DeviceInfo::getDeviceId, + Function.identity(), + (a, b) -> b + )); + } + public Map queryRealtime111Map(List deviceIdList111) { if (CollectionUtils.isEmpty(deviceIdList111)) { return Collections.emptyMap(); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java index 2586b43..109c159 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java @@ -19,6 +19,7 @@ import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt; import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt; import com.dongjian.dashboard.back.dto.data.AccumulateDataSearchParam; import com.dongjian.dashboard.back.dto.device.LineDataSearchParams; +import com.dongjian.dashboard.back.model.DeviceInfo; import com.dongjian.dashboard.back.model.DeviceRawdataRealtime; import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample; import com.dongjian.dashboard.back.service.DeviceDataAccumulateService; @@ -109,6 +110,7 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ .stream() .toList(); Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); + Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Tokyo")); LocalDate today = now.toLocalDate(); @@ -135,7 +137,8 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ //处理111状态映射 DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - data.setStatus111(commonOpt.mapStatus111(objectMapper, data.getDataMapping(), realtime111)); + String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); + data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); // favorited 判断 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java index 954bf49..a05d20e 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java @@ -8,6 +8,7 @@ import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt; import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt; import com.dongjian.dashboard.back.dto.data.BaStatusDataSearchParam; import com.dongjian.dashboard.back.easyexcel.SecondsToHMSConverter; +import com.dongjian.dashboard.back.model.DeviceInfo; import com.dongjian.dashboard.back.model.DeviceRawdataRealtime; import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample; import com.dongjian.dashboard.back.service.DeviceDataBaStatusService; @@ -102,6 +103,7 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService .stream() .toList(); Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); + Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); // 查询 favorited_device 表中所有设备的 device_id List favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds(); @@ -112,7 +114,8 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService //处理111状态映射 DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - data.setStatus111(commonOpt.mapStatus111(objectMapper, data.getDataMapping(), realtime111)); + String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); + data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); // 判断设备是否在 favorited_device 表中 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java index 18fe871..49e18ae 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java @@ -12,6 +12,7 @@ import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt; import com.dongjian.dashboard.back.dto.data.MeasureDataSearchParam; import com.dongjian.dashboard.back.dto.device.LineDataSearchParams; import com.dongjian.dashboard.back.model.DashboardRealtimeMeasure; +import com.dongjian.dashboard.back.model.DeviceInfo; import com.dongjian.dashboard.back.model.DeviceRawdataRealtime; import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample; import com.dongjian.dashboard.back.service.DeviceDataMeasureService; @@ -113,6 +114,7 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { .stream() .toList(); Map realtime111Map = commonOpt.queryRealtime111Map(deviceIdList_111); + Map deviceInfo111Map = commonOpt.queryDeviceInfo111Map(deviceIdList_111); ZoneId tokyoZone = ZoneId.of("Asia/Tokyo"); LocalDate tokyoToday = LocalDate.now(tokyoZone); @@ -177,7 +179,8 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { //处理111状态映射 DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - data.setStatus111(commonOpt.mapStatus111(objectMapper, data.getDataMapping(), realtime111)); + String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); + data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); // 收藏状态 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);