From 91e5d3d85c737b96b2c4a1994e2b861cc083453c Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Tue, 14 Nov 2017 10:24:46 +0800
Subject: [PATCH] 传感器平均数据 报表接口

---
 src/main/resources/mapper/HistoryEntityMapper.xml |   64 +++++++++++++++++++++++++++++--
 1 files changed, 59 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/HistoryEntityMapper.xml b/src/main/resources/mapper/HistoryEntityMapper.xml
index ea7322f..85374e0 100644
--- a/src/main/resources/mapper/HistoryEntityMapper.xml
+++ b/src/main/resources/mapper/HistoryEntityMapper.xml
@@ -239,7 +239,12 @@
 
 	<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,
@@ -258,8 +263,14 @@
 				#{listItem}
 			</foreach>
 		</if>
-		GROUP BY
-			h.mac_key
+		<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">
@@ -275,11 +286,54 @@
 				#{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>
+
+	<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 &lt; #{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