From 9a3d7f190717a6e3af608ffa0d78c66b6bcc0e8a Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 10 Sep 2020 15:23:07 +0800
Subject: [PATCH] 因子对比
---
src/main/resources/mapper/HistoryMinutelyMapper.xml | 99 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 92 insertions(+), 7 deletions(-)
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 151cc41..07749a1 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -31,6 +31,32 @@
AND time < #{end}
</select>
+ <select id="getAvgByDevice" resultType="java.util.Map">
+ SELECT
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
+ AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+ </foreach>
+ FROM
+ history_daily
+ WHERE
+ mac IN
+ (SELECT
+ d.mac
+ FROM
+ device d
+ WHERE
+ d.is_delete = 0
+ <if test="monitorPointId != null">
+ AND d.monitor_point_id = #{monitorPointId}
+ </if>
+ <if test="mac != null">
+ AND d.mac = #{mac}
+ </if>
+ )
+ AND time >= #{start}
+ AND time < #{end}
+ </select>
+
<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
SELECT
DATE_FORMAT(time, #{typeFormat}) time
@@ -77,6 +103,7 @@
ORDER BY
time
</select>
+
<select id="selectLineChartDateByCrieria" resultType="java.util.Map">
SELECT
<choose>
@@ -96,7 +123,7 @@
DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as
format_time
FROM
- `history_minutely` hmi
+ history_${timeUnits} hmi
<where>
and hmi.time >= #{timePeriod.startTime}
and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}
@@ -149,7 +176,7 @@
history_minutely as hm
<where>
<if test="mac!=null">
- and hm.mac=#{mac}
+ and hm.mac = #{mac}
</if>
and hm.time >= #{startTime}
and hm.time <![CDATA[<]]> #{endTime}
@@ -170,7 +197,7 @@
history_minutely_${yearAndMonth} as hm
<where>
<if test="mac!=null">
- and hm.mac=#{mac}
+ and hm.mac = #{mac}
</if>
and hm.time >= #{startTime}
and hm.time <![CDATA[<]]> #{endTime}
@@ -196,13 +223,12 @@
device d,
monitor_point m
WHERE
- h.mac=d.mac
- AND d.monitor_point_id=m.id
+ 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">
+ <foreach collection="macs" open="(" separator="," close=")" item="mac">
#{mac}
</foreach>
GROUP BY
@@ -213,4 +239,63 @@
order by rs.monitorPointName
</select>
+ <select id="getDevicesSensorsAvgDataToExcel" resultType="java.util.LinkedHashMap">
+ select
+ rs.monitorPointName,rs.name,
+ <foreach collection="timeList" separator="," item="time">
+ max(case time when #{time} then rs.json else "" end) as #{time}
+ </foreach>
+ from
+ (SELECT
+ m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,h.json
+ 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>
+ ORDER BY
+ h.mac) rs
+ GROUP BY rs.monitorPointName,rs.name
+ order by rs.monitorPointName
+ </select>
+
+ <select id="get5MiutesOrHalfHourByDay" resultType="java.util.LinkedHashMap">
+ SELECT
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
+ AVG(h.json->'$.${sensorKey}[0]') AS '${sensorKey}'
+ </foreach>
+ FROM
+ history_${timeUnits} h inner join
+ (select mac from device where monitor_point_id in
+ (
+ select id from monitor_point
+ where
+ <if test="areaCode != null">
+ area_code = #{areaCode}
+ </if>
+
+ <if test="cityCode != null">
+ city_code = #{cityCode}
+ </if>
+
+ <if test="provinceCode != null">
+ province_code = #{provinceCode}
+ </if>
+ )
+ and is_delete=0) m
+ on h.mac=m.mac
+ and h.time>=#{start}
+ and h.time <![CDATA[<]]> #{end}
+ ORDER BY
+ h.time
+ </select>
</mapper>
--
Gitblit v1.8.0