From 32a9814316c4292750a8e432e8a7e04ae2bef1c9 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Fri, 17 Apr 2020 14:53:20 +0800
Subject: [PATCH] update报表接口
---
src/main/resources/mapper/HistoryMinutelyMapper.xml | 90 +++++++++++++++++++++++++++++++++-----------
1 files changed, 67 insertions(+), 23 deletions(-)
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 45e4746..7af50a1 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
@@ -139,34 +139,78 @@
<!-- ���������sensor������ -->
<select id="getSensorData" resultType="java.util.LinkedHashMap">
SELECT
- <foreach collection="sensorKeys"
- item="sensorKey" separator="," close=",">
- hm.json->'$.${sensorKey}[0]' as '${sensorKey}'
+ 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>
- DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') as uavDate
FROM
history_minutely as hm
<where>
- <if test="mac!=null and mac!=''">
+ <if test="mac!=null">
and hm.mac=#{mac}
</if>
+ and hm.time >= #{startTime}
+ and hm.time <![CDATA[<]]> #{endTime}
</where>
- <choose>
- <when test="startTime !=null and startTime != '' and endTime!=null and endTime !='' ">
- and hm.time >= #{startTime}
- and hm.time <![CDATA[<=]]> #{endTime}
- </when>
- <when test="startTime !=null and startTime != '' ">
- and hm.time >= #{startTime}
- </when>
- <when test="endTime !=null and endTime != '' ">
- and hm.time <![CDATA[<=]]> #{endTime}
- </when>
- <otherwise>
- and hm.time >= date_add(now(), interval '-1 01:00:00' day_second)
- and hm.time <![CDATA[<=]]> date_sub(now(),interval 1 day)
- </otherwise>
- </choose>
- ORDER BY hm.time
+ 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 null 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.name
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0