From 33d898d8146223184fcaab82a9e16649434a1ab6 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 09 Sep 2022 17:47:54 +0800
Subject: [PATCH] 千灯数据转发bug修改

---
 src/main/resources/mapper/HistoryHourlyMapper.xml |   40 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/HistoryHourlyMapper.xml b/src/main/resources/mapper/HistoryHourlyMapper.xml
index cf4fc42..169573f 100644
--- a/src/main/resources/mapper/HistoryHourlyMapper.xml
+++ b/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -15,9 +15,25 @@
         SELECT
         h.mac,
         <foreach collection="sensorKeys" separator="," item="sensorKey">
-            AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}',
-            MIN(json->'$.${sensorKey}[1]') AS 'MIN${sensorKey}',
-            MAX(json->'$.${sensorKey}[2]') AS 'MAX${sensorKey}'
+            <choose >
+                <when test="sensorKey=='e23'">
+                    ROUND((CASE    WHEN AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0 AND AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0
+                    THEN ATAN(AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))/AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI())))*180/PI()
+                    WHEN AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))>0 AND AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0
+                    THEN (ATAN(AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))/AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI())))*180/PI())+180
+                    WHEN AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0 AND AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0
+                    THEN (ATAN(AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))/AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI())))*180/PI())+180
+                    ELSE (ATAN(AVG(json->'$.e18[0]'*SIN((json->'$.e23[0]'/180)*PI()))/AVG(json->'$.e18[0]'*COS((json->'$.e23[0]'/180)*PI())))*180/PI())+360
+                    END),3) AS '${sensorKey}',
+                    MIN(json->'$.${sensorKey}[1]') AS 'MIN${sensorKey}',
+                    MAX(json->'$.${sensorKey}[2]') AS 'MAX${sensorKey}'
+                </when>
+                <otherwise>
+                    AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}',
+                    MIN(json->'$.${sensorKey}[1]') AS 'MIN${sensorKey}',
+                    MAX(json->'$.${sensorKey}[2]') AS 'MAX${sensorKey}'
+                </otherwise>
+            </choose>
         </foreach>
         FROM
         history_hourly h
@@ -68,7 +84,8 @@
         DATE_FORMAT(h.time,#{typeFormat}) time,
         avg(h.json->'$.e12[0]') 'beam'
         FROM history_hourly h
-        WHERE h.mac in
+        WHERE h.json->'$.e12[0]' is not null
+        and h.mac in
         <foreach collection="macs" open="(" separator="," close=")" item="mac">
             #{mac}
         </foreach>
@@ -76,8 +93,21 @@
         <foreach collection="times" open="(" separator="," close=")" item="time">
             #{time}
         </foreach>
-        and h.json->'$.e12[0]' is not null
         group by h.time
     </select>
 
+    <select id="selectCountByMac" resultType="java.lang.Integer">
+        SELECT count(1) FROM history_hourly
+        WHERE mac = #{mac}
+        AND `time` >= #{start}
+        AND `time` <![CDATA[<]]> #{end}
+    </select>
+
+    <select id="selectDataByMac" resultType="java.lang.String">
+        select
+        json
+        from history_hourly
+        where mac = #{mac}
+        and `time` = #{time}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0