From 9ed19d9bfc20d9661210c3398077852c9bc2d413 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Thu, 29 Mar 2018 14:08:56 +0800
Subject: [PATCH] 报表优化

---
 src/main/resources/mapper/HistoryMinutelyMapper.xml |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 797834d..9fb4382 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -7,7 +7,9 @@
 	</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
@@ -19,7 +21,9 @@
 	<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
 		SELECT
 			DATE_FORMAT(time, #{typeFormat}) time,
-			${sensorKeyColumn}
+			<foreach  collection="sensorKeys" separator="," item="sensorKey">
+				AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
+			</foreach>
 		FROM
 			history_minutely h
 		WHERE
@@ -41,17 +45,22 @@
 		ORDER BY
 			time
 	</select>
-	<select id="selectLineChartDateByCrieria" resultMap="PairDataResultMap">
+	<select id="selectLineChartDateByCrieria" resultType="java.util.Map">
 			SELECT
 				<choose>
 					<when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
-						json->'$.${sensorKey}[0]'
+						<foreach collection="sensorKeys"
+								 item="sensorKey" separator="," close=",">
+							     json->'$.${sensorKey}[0]' as '${sensorKey}'
+						</foreach>
 					</when>
 					<otherwise>
-						AVG(json->'$.${sensorKey}[0]')
+						<foreach collection="sensorKeys"
+								 item="sensorKey" separator="," close=",">
+							AVG(json->'$.${sensorKey}[0]') as '${sensorKey}'
+						</foreach>
 					</otherwise>
 				</choose>
-		      as value,
 		     DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as format_time
 		     FROM
 			`history_minutely` hmi

--
Gitblit v1.8.0