From 43c0f7bd6b605b2c71f58e43055144004e7d42e7 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Thu, 16 Nov 2017 17:29:26 +0800 Subject: [PATCH] 降序 排序 --- src/main/resources/mapper/HistoryEntityMapper.xml | 117 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 70 insertions(+), 47 deletions(-) diff --git a/src/main/resources/mapper/HistoryEntityMapper.xml b/src/main/resources/mapper/HistoryEntityMapper.xml index 56eaad9..3089c66 100644 --- a/src/main/resources/mapper/HistoryEntityMapper.xml +++ b/src/main/resources/mapper/HistoryEntityMapper.xml @@ -231,62 +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 - --> - - SELECT - mac_key, - AVG(mac_value) avg - FROM - history h - <if test="orgIds!=null and orgIds.size > 0"> - JOIN ( - SELECT - e.mac - FROM - equipment e, - org_equ oe - WHERE - e.id = oe.equid - AND oe.orgid IN - <foreach collection="orgIds" item="listItem" open="(" separator="," close=")" > - #{listItem} - </foreach> - ) e ON h.mac = e.mac - </if> - WHERE h.time > #{start} - AND h.time < #{end} - GROUP BY - 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 desc + </if> + <if test="macKey == 'all'"> + GROUP BY h.mac_key + </if> </select> <select id="getEquipmentStates" resultType="map"> @@ -296,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