From a13506f193f38720ae2729f9c2ceb35bf9fdb898 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 28 Sep 2020 11:50:05 +0800
Subject: [PATCH] 更新获取风向和设备信息,添加经纬度,修改rabbit MQ代码。

---
 src/main/resources/mapper/HistoryMinutelyMapper.xml |  189 +++++++++++++++++++++++++----------------------
 1 files changed, 101 insertions(+), 88 deletions(-)

diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 3f4c176..07749a1 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -8,8 +8,8 @@
     <select id="getSersionAvgByDevice" resultType="java.util.Map">
         SELECT
         <foreach collection="sensorKeys" separator="," item="sensorKey">
-      AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
-    </foreach>
+            AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+        </foreach>
         FROM
         history_minutely_${yearAndMonth}
         WHERE
@@ -21,11 +21,11 @@
         WHERE
         d.is_delete = 0
         <if test="monitorPointId != null">
-      AND d.monitor_point_id = #{monitorPointId}
-    </if>
+            AND d.monitor_point_id = #{monitorPointId}
+        </if>
         <if test="mac != null">
-      AND d.mac = #{mac}
-    </if>
+            AND d.mac = #{mac}
+        </if>
         )
         AND time >= #{start}
         AND time &lt; #{end}
@@ -34,8 +34,8 @@
     <select id="getAvgByDevice" resultType="java.util.Map">
         SELECT
         <foreach collection="sensorKeys" separator="," item="sensorKey">
-      AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
-    </foreach>
+            AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+        </foreach>
         FROM
         history_daily
         WHERE
@@ -47,11 +47,11 @@
         WHERE
         d.is_delete = 0
         <if test="monitorPointId != null">
-      AND d.monitor_point_id = #{monitorPointId}
-    </if>
+            AND d.monitor_point_id = #{monitorPointId}
+        </if>
         <if test="mac != null">
-      AND d.mac = #{mac}
-    </if>
+            AND d.mac = #{mac}
+        </if>
         )
         AND time >= #{start}
         AND time &lt; #{end}
@@ -61,16 +61,16 @@
         SELECT
         DATE_FORMAT(time, #{typeFormat}) time
         <foreach collection="sensorKeys" open="," separator="," item="sensorKey">
-      AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
-    </foreach>
+            AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+        </foreach>
         FROM
         history_${timeUnits} h
         WHERE
         h.time >= #{start}
         AND h.time <![CDATA[<]]> #{end}
         <if test="mac != null">
-      AND h.mac = #{mac}
-    </if>
+            AND h.mac = #{mac}
+        </if>
         <if test="mac == null">
             AND h.mac IN
             (SELECT
@@ -81,20 +81,20 @@
             WHERE
             d.monitor_point_id = mp.id
             <if test="provinceCode != null">
-        AND mp.province_code = #{provinceCode}
-      </if>
+                AND mp.province_code = #{provinceCode}
+            </if>
             <if test="cityCode != null">
-        AND mp.city_code = #{cityCode}
-      </if>
+                AND mp.city_code = #{cityCode}
+            </if>
             <if test="areaCode != null">
-        AND mp.area_code = #{areaCode}
-      </if>
+                AND mp.area_code = #{areaCode}
+            </if>
             <if test="monitorPointId != null">
-        AND mp.id = #{monitorPointId}
-      </if>
+                AND mp.id = #{monitorPointId}
+            </if>
             <if test="professionId != null">
-        AND d.profession_id = #{professionId}
-      </if>
+                AND d.profession_id = #{professionId}
+            </if>
             )
         </if>
 
@@ -104,36 +104,20 @@
         time
     </select>
 
-    <select id="getAreaAvgDataByAreaCode" resultType="java.util.Map">
-    SELECT
-    DATE_FORMAT(time, #{typeFormat}) time,
-    AVG(aqi_json->'$.${sensors1}') AS '${sensors2}'
-    FROM
-    hangzhou_aqi ha
-    WHERE
-    ha.time >= #{start}
-    AND ha.time <![CDATA[<]]> #{end}
-    AND ha.city_code = #{areaCode}
-    GROUP BY
-    DATE_FORMAT(time, #{typeFormat})
-    ORDER BY
-    time
-  </select>
-
     <select id="selectLineChartDateByCrieria" resultType="java.util.Map">
         SELECT
         <choose>
             <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
                 <foreach collection="sensorKeys"
                          item="sensorKey" separator="," close=",">
-          json->'$.${sensorKey}[0]' as '${sensorKey}'
-        </foreach>
+                    json->'$.${sensorKey}[0]' as '${sensorKey}'
+                </foreach>
             </when>
             <otherwise>
                 <foreach collection="sensorKeys"
                          item="sensorKey" separator="," close=",">
-          AVG(json->'$.${sensorKey}[0]') as '${sensorKey}'
-        </foreach>
+                    AVG(json->'$.${sensorKey}[0]') as '${sensorKey}'
+                </foreach>
             </otherwise>
         </choose>
         DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as
@@ -144,38 +128,38 @@
             and hmi.time >= #{timePeriod.startTime}
             and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}
             <if test="dataCondition.actualTime != null">
-        and DATE_FORMAT(time,
-        '${@com.moral.common.util.ReportTimeFormat@toMySqlActualTimeFormat(dataCondition.timeUnits)}') =
-        #{dataCondition.actualTime}
-      </if>
+                and DATE_FORMAT(time,
+                '${@com.moral.common.util.ReportTimeFormat@toMySqlActualTimeFormat(dataCondition.timeUnits)}') =
+                #{dataCondition.actualTime}
+            </if>
             and hmi.mac in (
             select mac from device dev
             join monitor_point mpt on dev.monitor_point_id = mpt.id
             <where>
                 <if test='"DEVICE"==dataCondition.areaRange.toString()'>
-          and dev.id = #{dataCondition.areaRangeId}
-        </if>
+                    and dev.id = #{dataCondition.areaRangeId}
+                </if>
                 <if test='"PROFESSION"==dataCondition.deviceDimension.toString()'>
-          and dev.profession_id = #{dataCondition.dimensionValue}
-        </if>
+                    and dev.profession_id = #{dataCondition.dimensionValue}
+                </if>
                 <if test='"MONITORPOINT"==dataCondition.areaRange.toString()'>
-          and mpt.id = #{dataCondition.areaRangeId}
-        </if>
+                    and mpt.id = #{dataCondition.areaRangeId}
+                </if>
                 <if test='"PROVINCE"==dataCondition.areaRange.toString()'>
-          and mpt.province_code = #{dataCondition.areaRangeId}
-        </if>
+                    and mpt.province_code = #{dataCondition.areaRangeId}
+                </if>
                 <if test='"CITY"==dataCondition.areaRange.toString()'>
-          and mpt.city_code = #{dataCondition.areaRangeId}
-        </if>
+                    and mpt.city_code = #{dataCondition.areaRangeId}
+                </if>
                 <if test='"AREA"==dataCondition.areaRange.toString()'>
-          and mpt.area_code = #{dataCondition.areaRangeId}
-        </if>
+                    and mpt.area_code = #{dataCondition.areaRangeId}
+                </if>
             </where>
             )
         </where>
         <if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()">
-      GROUP BY format_time
-    </if>
+            GROUP BY format_time
+        </if>
         ORDER BY format_time asc
     </select>
 
@@ -184,16 +168,16 @@
         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>
+            hm.json->'$.${sensorKey}[0]' as '${sensorKey}',
+            hm.json->'$.${sensorKey}[1]' as 'min${sensorKey}',
+            hm.json->'$.${sensorKey}[2]' as 'max${sensorKey}'
+        </foreach>
         FROM
         history_minutely as hm
         <where>
             <if test="mac!=null">
-        and hm.mac=#{mac}
-      </if>
+                and hm.mac = #{mac}
+            </if>
             and hm.time >= #{startTime}
             and hm.time <![CDATA[<]]> #{endTime}
         </where>
@@ -205,16 +189,16 @@
         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>
+            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.mac = #{mac}
+            </if>
             and hm.time >= #{startTime}
             and hm.time <![CDATA[<]]> #{endTime}
         </where>
@@ -226,28 +210,27 @@
         select
         rs.monitorPointName,rs.name,
         <foreach collection="timeList" separator="," item="time">
-      max(case time when #{time} then rs.${sensorKey} else "" end) as #{time}
-    </foreach>
+            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>
+            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
+        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>
+        <foreach collection="macs" open="(" separator="," close=")" item="mac">
+            #{mac}
+        </foreach>
         GROUP BY
         h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
         ORDER BY
@@ -270,8 +253,8 @@
         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
@@ -285,4 +268,34 @@
         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