From 71d49c588d62385a57a2ea5434f3c407a1d5c1ca Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 30 Mar 2018 15:59:27 +0800
Subject: [PATCH] 调整 计算平均值算法

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

diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 0f1a427..620c6e0 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -1,88 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.moral.mapper.HistoryMapper">
-	<select id="getDayAQIByDevice" resultType="map">
-		SELECT
-			AVG(value -> '$.e1') e1,
-			AVG(value -> '$.e2') e2,
-			AVG(value -> '$.e10') e10,
-			AVG(value -> '$.e11') e11,
-			AVG(value -> '$.e15') e15,
-			AVG(value -> '$.e16') e16
-		FROM
-			history
-		WHERE
-			mac = #{mac}
-		AND time >= #{start}
-		AND time &lt; #{end}
-	</select>
-
-	<select id="getAllSensorAverageByDevice" resultType="java.util.LinkedHashMap">
+	<select id="getAreaAllDataByAccount" resultType="java.util.LinkedHashMap">
 		SELECT
-			${queryColumns}
+			<if test="macKey != null">
+				d.`name`,
+			</if>	
+			<foreach  collection="sensorKeys" separator="," item="sensorKey">
+				AVG(h.`value` ->'$.${sensorKey}[0]') AS '${sensorKey}'
+			</foreach>
 		FROM
 			history h,
 			device d,
 			monitor_point mp
-		<if test="orgIds != null and orgIds.size &gt; 0">
-			LEFT JOIN monitor_point_organization mpo ON mpo.monitor_point_id = mp.id 
-			AND mpo.organization_id IN
-			<foreach collection="orgIds" open="(" separator="," close=")" item="listItem">
-				#{listItem}
-			</foreach>
-		</if>
 		WHERE
 			mp.area_code = #{areaCode} 
 			AND h.time >= #{start} 
 			AND h.time &lt; #{end}
 			AND h.mac = d.mac 
 			AND d.monitor_point_id = mp.id 
-	</select>
-	
-	<select id="getAreaAllDataByAccount" resultType="java.util.LinkedHashMap">
-		SELECT
-		<if test="macKey == 'all'">
-			${queryColumns}
-		</if>	
-		<if test="macKey != 'all'">
-			d.`name`,
-			AVG( h.`value` -> ${macKey}) avg
-		</if>	
-		FROM
-			history h,
-			device d,
-			monitor_point mp
-		WHERE
-			mp.area_code = #{areaCode} 
-			AND h.time >= #{start} 
-			AND h.time &lt; #{end}
 		<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>
-			AND h.mac = d.mac 
-			AND d.monitor_point_id = mp.id 
-		<if test="macKey != 'all'">
+		<if test="macKey != null">
 			GROUP BY d.id
-			ORDER BY avg desc
+			ORDER BY ${macKey} desc
 		</if>	
-	</select>
-	
-	<select id="getSensorsAverageByDevice4Report" resultType="map">
-		SELECT
-			DATE_FORMAT(time, #{type}) time,
-			${queryColumns}
-		FROM
-			history h
-		WHERE
-			h.mac = #{mac}
-		AND h.time >= #{start}
-		AND h.time &lt; #{end}
-		GROUP BY
-			DATE_FORMAT(time, #{type})
-		ORDER BY
-			time
 	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0