From 33e323fb0e6959bf838867fc5582fbcd4749abb1 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 15 Jun 2018 08:53:26 +0800
Subject: [PATCH] 数据排名接口

---
 src/main/resources/mapper/HistoryMapper.xml |   64 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index f7c82a8..2408a33 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -6,7 +6,7 @@
 		where  time = #{time} and mac = #{mac}
 		limit 0,1
 	</select>
-	<select id="getAreaAllDataByAccount" resultType="java.util.Map">
+	<select id="getAreaAllDataByAccount" resultType="java.util.LinkedHashMap">
 		SELECT
 			<if test="macKey != null">
 				d.`name`,
@@ -35,4 +35,66 @@
 			ORDER BY ${macKey} desc
 		</if>	
 	</select>
+
+	<select id="getRegionRankingData" resultType="java.util.Map">
+		SELECT
+			AVG( h.`value` -> '$.${sensorKey}[0]' ) avg ,
+			<if test="dimension == 'profession'">
+				p.`name`
+			</if>
+			<if test="dimension == 'monitorPoint'">
+				mp.`name`
+			</if>
+			<if test="dimension == 'region'">
+				mp.${nextLevel}_code AS 'code'
+			</if>
+		FROM
+			<if test="dimension == 'profession'">
+				profession p , 
+			</if>
+			device d,
+			history h,
+			monitor_point mp
+		WHERE
+			d.mac = h.mac 
+			AND d.is_delete = '0'
+			AND mp.is_delete = '0'
+			AND d.monitor_point_id = mp.id 
+			AND h.time >= #{start}
+			AND mp.${regionType} = #{regionCode}
+			<if test="dimension == 'profession'">
+				AND d.profession_id = p.id 
+			</if>
+			<if test="orgIds != null and orgIds.size &gt; 0">
+				AND mp.organization_id IN
+				<foreach  collection="orgIds" open="(" separator="," close=")" item="listItem">
+					#{listItem}
+				</foreach>
+			</if>
+		GROUP BY
+			<if test="dimension == 'profession'">
+				p.id
+			</if>
+			<if test="dimension == 'monitorPoint'">
+				mp.id
+			</if>
+			<if test="dimension == 'region'">
+				mp.${nextLevel}_code
+			</if>
+		ORDER BY
+			avg DESC
+		<if test="dimension == 'monitorPoint'">
+		LIMIT 0,50
+		</if>
+	</select>
+	
+	<select id="selectNextLevelRegion" resultType="java.util.Map">
+		SELECT
+			${nextLevel}_code AS 'code',
+			${nextLevel}_name AS 'name' 
+		FROM
+			${nextLevel}
+		WHERE
+			${regionType} = #{regionCode}
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0