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);