From fd5d21eeedbac85fd93ac83e249c9b49711023d5 Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Fri, 26 Dec 2025 09:02:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=A7=E5=B0=8F=E5=86=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mappers/ex/FavoritedDeviceMapperExt.xml | 2 +- .../back/service/common/CommonOpt.java | 30 ++++++++++++++++--- .../impl/DeviceDataAccumulateServiceImpl.java | 12 ++++---- .../impl/DeviceDataAlarmServiceImpl.java | 3 +- .../impl/DeviceDataBaStatusServiceImpl.java | 6 ++-- .../impl/DeviceDataMeasureServiceImpl.java | 8 ++--- 6 files changed, 39 insertions(+), 22 deletions(-) diff --git a/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml b/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml index dd01098..6ea7168 100644 --- a/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml +++ b/dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml @@ -60,7 +60,7 @@ 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 b96278c..8685b98 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 @@ -466,10 +466,12 @@ public class CommonOpt { return deviceIds.stream() .filter(id -> id.endsWith(SUFFIX_85)) .collect(Collectors.toMap( - Function.identity(), - id -> id.substring(0, id.length() - SUFFIX_85.length()) + SUFFIX_111, + String::toLowerCase, + id -> (id.substring(0, id.length() - SUFFIX_85.length()) + SUFFIX_111) + .toLowerCase(), (a, b) -> b )); + } public Map queryDeviceInfo111Map(List deviceIdList111) { @@ -484,7 +486,7 @@ public class CommonOpt { .selectByExampleWithBLOBs(example) .stream() .collect(Collectors.toMap( - DeviceInfo::getDeviceId, + d -> d.getDeviceId().toLowerCase(), Function.identity(), (a, b) -> b )); @@ -502,12 +504,32 @@ public class CommonOpt { .selectByExampleWithBLOBs(example) .stream() .collect(Collectors.toMap( - DeviceRawdataRealtime::getDeviceId, + r -> r.getDeviceId().toLowerCase(), Function.identity(), (a, b) -> b )); } + public String buildStatus111( + String deviceId, + Map deviceId85To111Map, + Map deviceInfo111Map, + Map realtime111Map, + ObjectMapper objectMapper + ) { + String deviceId111 = deviceId85To111Map.get(deviceId); + if (deviceId111 == null) { + return null; + } + + DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId111); + String dataMapping111 = Optional.ofNullable(deviceInfo111Map.get(deviceId111)) + .map(DeviceInfo::getDataMapping) + .orElse(null); + + return mapStatus111(objectMapper, dataMapping111, realtime111); + } + public String mapStatus111(ObjectMapper mapper, String dataMapping, DeviceRawdataRealtime realtime111) { 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 109c159..72d937f 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 @@ -121,14 +121,14 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ // 批量查询增量数据并构建 Map Map todayMap = dashboardRecordAccumulateMapperExt.selectTodayIncrement(deviceIds, today.getYear(), today.getMonthValue(), today.getDayOfMonth()) - .stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity())); + .stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity())); Map yesterdayMap = dashboardRecordAccumulateMapperExt.selectYesterdayIncrement(deviceIds, yesterday.getYear(), yesterday.getMonthValue(), yesterday.getDayOfMonth(), targetSeconds) - .stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity())); + .stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity())); Map lastYearMap = dashboardRecordAccumulateMapperExt.selectLastYearIncrement(deviceIds, lastYear.getYear(), lastYear.getMonthValue(), lastYear.getDayOfMonth(), targetSeconds) - .stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity())); + .stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity())); resultList.forEach(data -> { - String deviceId = data.getDeviceId(); + String deviceId = data.getDeviceId().toLowerCase(); // 填充今天/昨天/去年值 data.setCumulativeValue(getIncrement(todayMap.get(deviceId), DeviceIncrement::getTodayIncrement)); @@ -136,9 +136,7 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ data.setLastYearValue(getIncrement(lastYearMap.get(deviceId), DeviceIncrement::getLastYearIncrement)); //处理111状态映射 - DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); - data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); + data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); // favorited 判断 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0); diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java index 3a49901..9503d98 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java @@ -99,8 +99,9 @@ public class DeviceDataAlarmServiceImpl implements DeviceDataAlarmService { // 查询 favorited_device 表中所有设备的 device_id List favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds(); for (DeviceAlarmData data : resultList){ + String deviceId = data.getDeviceId().toLowerCase(); // 判断设备是否在 favorited_device 表中 - if (favoritedDeviceIds.contains(data.getDeviceId())) { + if (favoritedDeviceIds.contains(deviceId)) { data.setCollected(1); } else { data.setCollected(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 a05d20e..8307d87 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 @@ -108,14 +108,12 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService // 查询 favorited_device 表中所有设备的 device_id List favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds(); for (DeviceBaStatusData data : resultList){ - String deviceId = data.getDeviceId(); + String deviceId = data.getDeviceId().toLowerCase(); data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime())); //处理111状态映射 - DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); - data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); + data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); // 判断设备是否在 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 49e18ae..34676dd 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 @@ -126,10 +126,10 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { List realtimeList = dashboardRealtimeMeasureMapperExt.selectRealtimeMeasureByDevices(deviceIds); Map> realtimeMap = realtimeList.stream() - .collect(Collectors.groupingBy(DashboardRealtimeMeasure::getDeviceId)); + .collect(Collectors.groupingBy(m -> m.getDeviceId().toLowerCase())); for (DeviceMeasureData data : resultList) { - String deviceId = data.getDeviceId(); + String deviceId = data.getDeviceId().toLowerCase(); // 默认 measurementValue 从 rawData 提取 data.setMeasurementValue(commonOpt.extractValue(objectMapper, data.getCategoryId(), data.getRawData())); @@ -178,9 +178,7 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService { } //处理111状态映射 - DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId85To111Map.get(deviceId)); - String dataMapping111 = deviceInfo111Map.get(deviceId85To111Map.get(deviceId)).getDataMapping(); - data.setStatus111(commonOpt.mapStatus111(objectMapper, dataMapping111, realtime111)); + data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper)); // 收藏状态 data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);