From 74bb3f9cc4761fd4204ce8b6479dd0024b422355 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Wed, 15 Nov 2017 09:46:36 +0800
Subject: [PATCH] 查询AQI接口采用多线程的方式
---
src/main/resources/mapper/HistoryEntityMapper.xml | 90 +++++++++++++++++++++++++++++++++++----------
1 files changed, 70 insertions(+), 20 deletions(-)
diff --git a/src/main/resources/mapper/HistoryEntityMapper.xml b/src/main/resources/mapper/HistoryEntityMapper.xml
index 956888a..e5b64e7 100644
--- a/src/main/resources/mapper/HistoryEntityMapper.xml
+++ b/src/main/resources/mapper/HistoryEntityMapper.xml
@@ -231,35 +231,46 @@
FROM
history
WHERE
- mac = #{mac}
- AND mac_key = #{macKey}
- AND time > #{start}
- AND time < #{end}
+ mac = #{mac,jdbcType=VARCHAR}
+ AND mac_key = #{macKey,jdbcType=VARCHAR}
+ AND time > #{start,jdbcType=TIMESTAMP}
+ AND time < #{end,jdbcType=TIMESTAMP}
</select>
<select id="getAverageByAll" resultType="map">
SELECT
- h.mac_key,
+ <if test="macKey != null and macKey != 'all'">
+ e.name,
+ </if>
+ <if test="macKey == 'all'">
+ h.mac_key,
+ </if>
AVG(h.mac_value) avg
FROM
history h,
monitorpoint m,
equipment e
- <if test="orgIds != null and orgIds.size > 0">
- JOIN org_equ oe ON e.id = oe.equid
- AND oe.orgid IN
- <foreach collection="orgIds" item="listItem" open="(" separator="," close=")" >
- #{listItem}
- </foreach>
- </if>
WHERE
m.areacode = #{areaCode}
AND m.id = e.monitorpoint
AND e.mac = h.mac
AND h.time > #{start}
AND h.time < #{end}
- GROUP BY
- h.mac_key
+ <if test="orgIds != null and orgIds.size > 0">
+ <!-- JOIN org_equ oe ON e.id = oe.equid -->
+ AND e.owner_id IN
+ <foreach collection="orgIds" item="listItem" open="(" separator="," close=")" >
+ #{listItem}
+ </foreach>
+ </if>
+ <if test="macKey != null and macKey != 'all'">
+ AND h.mac_key = #{macKey}
+ GROUP BY e.id
+ ORDER BY avg
+ </if>
+ <if test="macKey == 'all'">
+ GROUP BY h.mac_key
+ </if>
</select>
<select id="getEquipmentStates" resultType="map">
@@ -269,17 +280,56 @@
FROM
equipment
<if test="orgIds != null and orgIds.size > 0">
- JOIN org_equ oe ON e.id = oe.equid
- AND oe.orgid IN
+ <!-- JOIN org_equ oe ON e.id = oe.equid -->
+ where owner_id IN
<foreach collection="orgIds" item="listItem" open="(" separator="," close=")" >
#{listItem}
</foreach>
</if>
- GROUP BY
- state
+ GROUP BY state
</select>
- <select id="getMacLogByLast" resultType="string">
- SELECT mac_log FROM logger ORDER BY time DESC LIMIT 1
+ <select id="getSensorsAverageByEquipment" resultType="map">
+ SELECT
+ concat(time,':00') AS 'time',
+ MAX(CASE WHEN mac_key='e1' THEN mac_value END) AS 'e1',
+ MAX(CASE WHEN mac_key='e2' THEN mac_value END) AS 'e2',
+ MAX(CASE WHEN mac_key='e3' THEN mac_value END) AS 'e3',
+ MAX(CASE WHEN mac_key='e4' THEN mac_value END) AS 'e4',
+ MAX(CASE WHEN mac_key='e5' THEN mac_value END) AS 'e5',
+ MAX(CASE WHEN mac_key='e6' THEN mac_value END) AS 'e6',
+ MAX(CASE WHEN mac_key='e7' THEN mac_value END) AS 'e7',
+ MAX(CASE WHEN mac_key='e8' THEN mac_value END) AS 'e8',
+ MAX(CASE WHEN mac_key='e9' THEN mac_value END) AS 'e9',
+ MAX(CASE WHEN mac_key='e10' THEN mac_value END) AS 'e10',
+ MAX(CASE WHEN mac_key='e11' THEN mac_value END) AS 'e11',
+ MAX(CASE WHEN mac_key='e12' THEN mac_value END) AS 'e12',
+ MAX(CASE WHEN mac_key='e13' THEN mac_value END) AS 'e13',
+ MAX(CASE WHEN mac_key='e14' THEN mac_value END) AS 'e14',
+ MAX(CASE WHEN mac_key='e15' THEN mac_value END) AS 'e15',
+ MAX(CASE WHEN mac_key='e16' THEN mac_value END) AS 'e16',
+ MAX(CASE WHEN mac_key='e17' THEN mac_value END) AS 'e17',
+ MAX(CASE WHEN mac_key='e18' THEN mac_value END) AS 'e18',
+ MAX(CASE WHEN mac_key='e19' THEN mac_value END) AS 'e19'
+ FROM
+ (
+ SELECT
+ h.mac_key,
+ DATE_FORMAT(time, #{type}) time,
+ AVG(h.mac_value) mac_value
+ FROM
+ history h
+ WHERE
+ h.mac = #{mac}
+ AND h.time >= #{start}
+ AND h.time < #{end}
+ GROUP BY
+ h.mac_key,
+ DATE_FORMAT(time, #{type})
+ ORDER BY
+ DATE_FORMAT(time, #{type})
+ ) a
+ GROUP BY
+ time
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0