From af272a9854551083a423745d311069a6a2d1a7af Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 13 Dec 2024 09:26:07 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E6=B8=A9=E5=BA=A6=E9=98=B5?= =?UTF-8?q?=E5=88=97=E6=A0=91=E7=8A=B6=E5=9B=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TArraytemperaturedataServiceImpl.java | 21 ++++++++++++++- .../system/TArraytemperaturedataMapper.xml | 26 ++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) 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 +