From 0fd34e51dadbf9598188b0e061b658139e6d6257 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 22 Jun 2018 13:47:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/resources/mapper/HistoryMinutelyMapper.xml |   57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 148f6a4..1509a27 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -7,19 +7,36 @@
 	</resultMap>
 	<select id="getSersionAvgByDevice" resultType="java.util.Map">
 		SELECT
-			${sensorKeyColumn}
+			<foreach  collection="sensorKeys" separator="," item="sensorKey">
+				AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+			</foreach>
 		FROM
 			history_minutely
 		WHERE
-			mac = #{mac}
+			mac IN
+				(SELECT
+					d.mac 
+				FROM
+					device d
+				WHERE
+					d.is_delete = 0 
+					<if test="monitorPointId != null">
+					AND d.monitor_point_id = #{monitorPointId}
+					</if>
+					<if test="mac != null">
+					AND d.mac = #{mac}
+					</if>
+				)	
 		AND time >= #{start}
 		AND time &lt; #{end}
 	</select>
 	
-	<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
+	<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.LinkedHashMap">
 		SELECT
-			DATE_FORMAT(time, #{typeFormat}) time,
-			${sensorKeyColumn}
+			DATE_FORMAT(time, #{typeFormat}) time
+			<foreach  collection="sensorKeys" open="," separator="," item="sensorKey">
+				AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+			</foreach>
 		FROM
 			history_minutely h
 		WHERE
@@ -30,10 +47,29 @@
 		</if>
 		<if test="mac == null">
 		AND	h.mac IN
-			<foreach  collection="macs" open="(" separator="," close=")" item="listItem">
-				#{listItem}
-			</foreach>
-		
+			(SELECT
+				d.mac 
+			FROM
+				device d,
+				monitor_point mp 
+			WHERE
+				d.monitor_point_id = mp.id 
+				<if test="provinceCode != null">
+				AND mp.province_code = #{provinceCode}
+				</if>
+				<if test="cityCode != null">
+				AND mp.city_code = #{cityCode}
+				</if>
+				<if test="areaCode != null">
+				AND mp.area_code = #{areaCode}
+				</if>
+				<if test="monitorPointId != null">
+				AND mp.id =	#{monitorPointId}
+				</if>
+				<if test="professionId != null">
+				AND d.profession_id = #{professionId}
+				</if>
+			)	
 		</if>
 		
 		GROUP BY
@@ -73,6 +109,9 @@
 					 <if test='"DEVICE"==dataCondition.areaRange.toString()'>
 						and dev.id = #{dataCondition.areaRangeId}
 					 </if>
+					<if test='"PROFESSION"==dataCondition.deviceDimension.toString()'>
+						and dev.profession_id = #{dataCondition.dimensionValue}
+					</if>
 					<if test='"MONITORPOINT"==dataCondition.areaRange.toString()'>
 						and mpt.id = #{dataCondition.areaRangeId}
 					</if>

--
Gitblit v1.8.0