change - 温度阵列树状图接口

master
yinq 2 months ago
parent 7d4323c909
commit af272a9854

@ -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<String> monitorList = tMonitors.stream().map(T_Monitor::getMonitorId).collect(Collectors.toList());
List<String> twoList = new ArrayList<>();
List<String> threeList = new ArrayList<>();
for (String pmonitor : monitorList) {
T_Monitor t_monitor = new T_Monitor();
t_monitor.setpMonitorid(pmonitor);
List<T_Monitor> 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<T_Monitor> 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);
}

@ -4775,10 +4775,34 @@
</if>
</where>
</select>
<select id="getTemperatureArrayTreemap" resultType="java.util.HashMap">
<select id="getTemperatureArrayTreemap" parameterType="TArraytemperaturedata" resultType="java.util.HashMap">
WITH RankedData AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY monitorId ORDER BY collectTime DESC) AS rn
FROM T_ArrayTemperatureData
where 1=1
<if test="monitorList != null and monitorList.size > 0">
and monitorId IN
<foreach item="monitorId" collection="monitorList" open="(" separator="," close=")">
#{monitorId}
</foreach>
</if>
)
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
</select>
<!--
WHERE collectTime > (GETDATE() - 1)
-->
<!-- SELECT monitorId, collectTime, MAX(SiteValue) AS tempreture
FROM (
SELECT monitorId, collectTime, SiteValue

Loading…
Cancel
Save