From 69fe5c709ecf9093b1640356eff7c1991a6dd7d3 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 23 Apr 2020 11:53:54 +0800
Subject: [PATCH] add定制导报表接口
---
src/main/resources/mapper/HistoryMinutelyMapper.xml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 57 insertions(+), 2 deletions(-)
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 1a0ba78..26ef457 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -11,7 +11,7 @@
AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
</foreach>
FROM
- history_minutely
+ history_minutely_${yearAndMonth}
WHERE
mac IN
(SELECT
@@ -152,10 +152,65 @@
and hm.mac=#{mac}
</if>
and hm.time >= #{startTime}
- and hm.time <![CDATA[<=]]> #{endTime}
+ and hm.time <![CDATA[<]]> #{endTime}
</where>
ORDER BY
hm.time
</select>
+ <select id="getSensorData2020" resultType="java.util.LinkedHashMap">
+ SELECT
+ DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') time,
+ <foreach collection="sensorKeys" item="sensorKey" separator=",">
+ hm.json->'$.${sensorKey}[0]' as '${sensorKey}',
+ hm.json->'$.${sensorKey}[1]' as 'min${sensorKey}',
+ hm.json->'$.${sensorKey}[2]' as 'max${sensorKey}'
+ </foreach>
+ FROM
+ history_minutely_${yearAndMonth} as hm
+ <where>
+ <if test="mac!=null">
+ and hm.mac=#{mac}
+ </if>
+ and hm.time >= #{startTime}
+ and hm.time <![CDATA[<]]> #{endTime}
+ </where>
+ ORDER BY
+ hm.time
+ </select>
+
+ <select id="getDevicesAvgDataToExcel" resultType="java.util.LinkedHashMap">
+ select
+ rs.monitorPointName,rs.name,
+ <foreach collection="timeList" separator="," item="time">
+ max(case time when #{time} then rs.${sensorKey} else "" end) as #{time}
+ </foreach>
+ from
+ (SELECT
+ m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
+ AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+ </foreach>
+ FROM
+ history_${timeUnits} h,
+ device d,
+ monitor_point m
+ WHERE
+ h.mac=d.mac
+ AND d.monitor_point_id=m.id
+ AND h.time >= #{start}
+ AND h.time <![CDATA[<=]]> #{end}
+ AND h.mac in
+ <foreach collection="macs" open="(" separator="," close=")"
+ item="mac">
+ #{mac}
+ </foreach>
+ GROUP BY
+ h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
+ ORDER BY
+ h.mac) rs
+ GROUP BY rs.monitorPointName,rs.name
+ order by rs.monitorPointName
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0