From 2bad8336e2c14ffd85403c14ad254916146b6a5e Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 13 Mar 2018 15:11:31 +0800
Subject: [PATCH] 报表模块

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

diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 3f3e22f..2bbb17b 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -1,8 +1,11 @@
 <?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.HistoryMinutelyMapper">
-
-	<select id="getSersionAvgByDevice" resultType="java.util.LinkedHashMap">
+<mapper namespace="com.moral.mapper.HistoryMinutelyMapper">
+	<resultMap id="PairDataResultMap" type="com.moral.entity.charts.PairData" >
+		<result column="format_time" property="category" jdbcType="VARCHAR" />
+		<result column="value" property="value" jdbcType="DOUBLE" />
+	</resultMap>
+	<select id="getSersionAvgByDevice" resultType="java.util.Map">
 		SELECT
 			${sensorKeyColumn}
 		FROM
@@ -13,7 +16,7 @@
 		AND time &lt; #{end}
 	</select>
 	
-	<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.LinkedHashMap">
+	<select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
 		SELECT
 			DATE_FORMAT(time, #{typeFormat}) time,
 			${sensorKeyColumn}
@@ -38,5 +41,49 @@
 		ORDER BY
 			time
 	</select>
-	
+	<select id="selectLineChartDateByCrieria" resultMap="PairDataResultMap">
+			SELECT
+		     <if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
+		         AVG(json->'$.${sensorKey}[0]')
+		     </if>
+		     <if test='"MINUTE"==dataCondition.timeUnits.toString()'>
+				 json->'$.${sensorKey}[0]'
+			 </if>
+		      as value,
+		     DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as format_time
+		     FROM
+			`history_minutely` hmi
+			<where>
+				and hmi.time >= #{timePeriod.startTime}
+				and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}
+				<if test="dataCondition.actualTime != null">
+					and DATE_FORMAT(time,	'${@com.moral.common.util.ReportTimeFormat@toMySqlActualTimeFormat(dataCondition.timeUnits)}') = #{dataCondition.actualTime}
+				</if>
+				and hmi.mac in (
+				select mac from device dev
+				join monitor_point mpt  on dev.monitor_point_id = mpt.id
+				<where>
+					 <if test='"DEVICE"==dataCondition.areaRange.toString()'>
+						and dev.id = #{dataCondition.areaRangeId}
+					 </if>
+					<if test='"MONITORPOINT"==dataCondition.areaRange.toString()'>
+						and mpt.id = #{dataCondition.areaRangeId}
+					</if>
+					<if test='"PROVINCE"==dataCondition.areaRange.toString()'>
+						and mpt.provice_code = #{dataCondition.areaRangeId}
+					</if>
+					<if test='"CITY"==dataCondition.areaRange.toString()'>
+						and mpt.city_code = #{dataCondition.areaRangeId}
+					</if>
+					<if test='"AREA"==dataCondition.areaRange.toString()'>
+						and mpt.area_code = #{dataCondition.areaRangeId}
+					</if>
+				</where>
+				)
+			</where>
+			<if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
+				GROUP BY format_time
+			</if>
+		    ORDER BY format_time asc
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0