From 3d665d84b1a4ffd6749ca9354247838ce0622f4b Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 13 Dec 2022 13:47:53 +0800
Subject: [PATCH] 修改sql语句问题
---
screen-job/src/main/resources/mapper/HistoryMinutelyMapper.xml | 49 ++++++++++++++++++-------------------------------
1 files changed, 18 insertions(+), 31 deletions(-)
diff --git a/screen-job/src/main/resources/mapper/HistoryMinutelyMapper.xml b/screen-job/src/main/resources/mapper/HistoryMinutelyMapper.xml
index d705dd2..3785bc1 100644
--- a/screen-job/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/screen-job/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -4,47 +4,34 @@
<update id="createTable" parameterType="String">
CREATE TABLE IF NOT EXISTS `history_minutely_${timeUnits}` (
- `mac` VARCHAR (20) DEFAULT NULL COMMENT '������mac',
+ `mac` VARCHAR (30) DEFAULT NULL COMMENT '������mac',
`time` datetime DEFAULT NULL COMMENT '������������',
`value` json DEFAULT NULL COMMENT '������',
`version` INT (11) DEFAULT NULL COMMENT '������',
- KEY `idx_mac` (`mac`),
- KEY `idx_time` (`time`),
KEY `idx_mac_time` (`mac`,`time`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '���������������'
</update>
- <select id="getHistoryFiveMinutelyData" resultType="java.util.LinkedHashMap">
+ <select id="getHistoryMinutelyData" resultType="java.util.LinkedHashMap">
SELECT
- mac
- <foreach collection="sensorKeys" open="," separator="," item="sensorKey">
- <choose>
- <when test="sensorKey=='e23[0]'">
- ROUND((CASE WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0 AND
- AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[>]]>0
- THEN
- ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI()
- WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))>0 AND
- AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0
- THEN
- (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+180
- WHEN AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0 AND
- AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI()))<![CDATA[<]]>0
- THEN
- (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+180
- ELSE
- (ATAN(AVG(value->'$.e18[0]'*SIN((value->'$.e23[0]'/180)*PI()))/AVG(value->'$.e18[0]'*COS((value->'$.e23[0]'/180)*PI())))*180/PI())+360
- END),3) AS '${sensorKey}'
- </when>
- <otherwise>
- ROUND(AVG(value->'$.${sensorKey}[0]'),3) AS '${sensorKey}'
- </otherwise>
- </choose>
- </foreach>
+ mac, `value`, version
FROM
history_minutely_${timeUnits}
- WHERE time <![CDATA[>=]]> #{start} AND time <![CDATA[<]]> #{end}
- GROUP BY mac
+ WHERE `time` <![CDATA[>=]]> #{start}
+ AND `time` <![CDATA[<]]> #{end}
+ <if test="macs != null">
+ AND mac IN
+ <foreach collection="macs" item="mac" open="(" close=")" separator=",">
+ #{mac}
+ </foreach>
+ </if>
+ </select>
+
+ <select id="getHourlyData" resultType="java.util.Map">
+ SELECT mac, `time`, `value`
+ FROM history_minutely_${timeUnits}
+ WHERE `time` <![CDATA[>=]]> #{start}
+ AND `time` <![CDATA[<]]> #{end}
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0