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 |  120 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 82 insertions(+), 38 deletions(-)

diff --git a/src/main/resources/mapper/HistoryEntityMapper.xml b/src/main/resources/mapper/HistoryEntityMapper.xml
index 5df5dd4..3089c66 100644
--- a/src/main/resources/mapper/HistoryEntityMapper.xml
+++ b/src/main/resources/mapper/HistoryEntityMapper.xml
@@ -227,65 +227,109 @@
   </update>
   <select id="getMonthAverageBySensor" resultType="map">
 		SELECT
-			AVG(mac_value) monthAverage
+			AVG(mac_value) average
 		FROM
 			history
 		WHERE
-			mac = #{mac}
-		AND mac_key = #{macKey}
-		AND time &gt; #{start}
-		AND time &lt; #{end}
+			mac = #{mac,jdbcType=VARCHAR}
+		AND mac_key = #{macKey,jdbcType=VARCHAR}
+		AND time &gt; #{start,jdbcType=TIMESTAMP}
+		AND time &lt; #{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 &gt; #{start}
 		AND h.time &lt; #{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 desc
+		</if>	
+		<if test="macKey == 'all'">
+			GROUP BY h.mac_key
+		</if>	
+	</select>
 
+	<select id="getEquipmentStates" resultType="map">
 		SELECT
-			mac_key,
-			AVG(mac_value) avg
+			COUNT(state) count,
+			state
 		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 &gt; #{start}
-			AND h.time &lt; #{end}
+			equipment
+		<if test="orgIds != null and orgIds.size > 0">
+			<!-- 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
+	</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
-			mac_key
+			time
 	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0