diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TArraytemperaturedataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TArraytemperaturedataServiceImpl.java index 040c9e3..2eea6a8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TArraytemperaturedataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TArraytemperaturedataServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -151,14 +152,32 @@ public class TArraytemperaturedataServiceImpl implements ITArraytemperaturedataS return null; } List monitorList = tMonitors.stream().map(T_Monitor::getMonitorId).collect(Collectors.toList()); + List twoList = new ArrayList<>(); + List threeList = new ArrayList<>(); for (String pmonitor : monitorList) { T_Monitor t_monitor = new T_Monitor(); t_monitor.setpMonitorid(pmonitor); List monitors = t_MonitorMapper.selectT_MonitorList(t_monitor); for (T_Monitor tMonitor : monitors) { - monitorList.add(tMonitor.getMonitorId()); + if (monitorList.contains(tMonitor.getMonitorId())){ + continue; + } + twoList.add(tMonitor.getMonitorId()); } } + for (String pmonitor : twoList) { + T_Monitor t_monitor = new T_Monitor(); + t_monitor.setpMonitorid(pmonitor); + List monitors = t_MonitorMapper.selectT_MonitorList(t_monitor); + for (T_Monitor tMonitor : monitors) { + if (monitorList.contains(tMonitor.getMonitorId())){ + continue; + } + threeList.add(tMonitor.getMonitorId()); + } + } + monitorList.addAll(twoList); + monitorList.addAll(threeList); tArraytemperaturedata.setMonitorList(monitorList); return tArraytemperaturedataMapper.getTemperatureArrayTreemap(tArraytemperaturedata); } diff --git a/ruoyi-system/src/main/resources/mapper/system/TArraytemperaturedataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TArraytemperaturedataMapper.xml index 0da0270..ea6f4ec 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TArraytemperaturedataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TArraytemperaturedataMapper.xml @@ -4775,10 +4775,34 @@ - + WITH RankedData AS ( + SELECT *, + ROW_NUMBER() OVER (PARTITION BY monitorId ORDER BY collectTime DESC) AS rn + FROM T_ArrayTemperatureData + where 1=1 + + and monitorId IN + + #{monitorId} + + + ) + SELECT m.monitorId, + M.p_monitorId pMonitorId, + m.monitorName, + t.maxTemperature + isnull(m.correctValue, 0) maxTemperature, + t.collectTime + FROM RankedData t + LEFT JOIN T_Monitor m on m.monitorId = t.monitorId + WHERE t.rn = 1 + ORDER BY monitorId +