From c8af269388604f6e62d4b9effe7ea14c96189109 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Mon, 27 Apr 2020 11:14:00 +0800
Subject: [PATCH] update
---
src/main/resources/mapper/HistoryMinutelyMapper.xml | 323 +++++++++++++++++++++++++++++------------------------
1 files changed, 176 insertions(+), 147 deletions(-)
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 9a7d185..4ba0029 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -1,84 +1,84 @@
<?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">
- <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
- <foreach collection="sensorKeys" separator="," item="sensorKey">
+ <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
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
</foreach>
- FROM
- history_minutely_${yearAndMonth}
- WHERE
- mac IN
- (SELECT
- d.mac
- FROM
- device d
- WHERE
- d.is_delete = 0
- <if test="monitorPointId != null">
+ FROM
+ history_minutely_${yearAndMonth}
+ WHERE
+ 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">
+ <if test="mac != null">
AND d.mac = #{mac}
</if>
- )
- AND time >= #{start}
- AND time < #{end}
- </select>
+ )
+ AND time >= #{start}
+ AND time < #{end}
+ </select>
- <select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
- SELECT
- DATE_FORMAT(time, #{typeFormat}) time
- <foreach collection="sensorKeys" open="," separator="," item="sensorKey">
+ <select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
+ SELECT
+ DATE_FORMAT(time, #{typeFormat}) time
+ <foreach collection="sensorKeys" open="," separator="," item="sensorKey">
AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
</foreach>
- FROM
- history_${timeUnits} h
- WHERE
- h.time >= #{start}
- AND h.time <![CDATA[<]]> #{end}
- <if test="mac != null">
+ FROM
+ history_${timeUnits} h
+ WHERE
+ h.time >= #{start}
+ AND h.time <![CDATA[<]]> #{end}
+ <if test="mac != null">
AND h.mac = #{mac}
</if>
- <if test="mac == null">
- AND h.mac IN
- (SELECT
- d.mac
- FROM
- device d,
- monitor_point mp
- WHERE
- d.monitor_point_id = mp.id
- <if test="provinceCode != null">
+ <if test="mac == null">
+ AND h.mac IN
+ (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">
+ <if test="cityCode != null">
AND mp.city_code = #{cityCode}
</if>
- <if test="areaCode != null">
+ <if test="areaCode != null">
AND mp.area_code = #{areaCode}
</if>
- <if test="monitorPointId != null">
+ <if test="monitorPointId != null">
AND mp.id = #{monitorPointId}
</if>
- <if test="professionId != null">
+ <if test="professionId != null">
AND d.profession_id = #{professionId}
</if>
- )
- </if>
+ )
+ </if>
- GROUP BY
- DATE_FORMAT(time, #{typeFormat})
- ORDER BY
- time
- </select>
+ GROUP BY
+ DATE_FORMAT(time, #{typeFormat})
+ ORDER BY
+ time
+ </select>
- <select id="getAreaAvgDataByAreaCode" resultType="java.util.Map">
+ <select id="getAreaAvgDataByAreaCode" resultType="java.util.Map">
SELECT
DATE_FORMAT(time, #{typeFormat}) time,
AVG(aqi_json->'$.${sensors1}') AS '${sensors2}'
@@ -94,140 +94,169 @@
time
</select>
- <select id="selectLineChartDateByCrieria" resultType="java.util.Map">
- SELECT
- <choose>
- <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
- <foreach collection="sensorKeys"
- item="sensorKey" separator="," close=",">
+ <select id="selectLineChartDateByCrieria" resultType="java.util.Map">
+ SELECT
+ <choose>
+ <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
+ <foreach collection="sensorKeys"
+ item="sensorKey" separator="," close=",">
json->'$.${sensorKey}[0]' as '${sensorKey}'
</foreach>
- </when>
- <otherwise>
- <foreach collection="sensorKeys"
- item="sensorKey" separator="," close=",">
+ </when>
+ <otherwise>
+ <foreach collection="sensorKeys"
+ item="sensorKey" separator="," close=",">
AVG(json->'$.${sensorKey}[0]') as '${sensorKey}'
</foreach>
- </otherwise>
- </choose>
- 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">
+ </otherwise>
+ </choose>
+ 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 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='"PROFESSION"==dataCondition.deviceDimension.toString()'>
+ <if test='"PROFESSION"==dataCondition.deviceDimension.toString()'>
and dev.profession_id = #{dataCondition.dimensionValue}
</if>
- <if test='"MONITORPOINT"==dataCondition.areaRange.toString()'>
+ <if test='"MONITORPOINT"==dataCondition.areaRange.toString()'>
and mpt.id = #{dataCondition.areaRangeId}
</if>
- <if test='"PROVINCE"==dataCondition.areaRange.toString()'>
+ <if test='"PROVINCE"==dataCondition.areaRange.toString()'>
and mpt.province_code = #{dataCondition.areaRangeId}
</if>
- <if test='"CITY"==dataCondition.areaRange.toString()'>
+ <if test='"CITY"==dataCondition.areaRange.toString()'>
and mpt.city_code = #{dataCondition.areaRangeId}
</if>
- <if test='"AREA"==dataCondition.areaRange.toString()'>
+ <if test='"AREA"==dataCondition.areaRange.toString()'>
and mpt.area_code = #{dataCondition.areaRangeId}
</if>
- </where>
- )
- </where>
- <if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()">
+ </where>
+ )
+ </where>
+ <if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()">
GROUP BY format_time
</if>
- ORDER BY format_time asc
- </select>
+ ORDER BY format_time asc
+ </select>
- <!-- ���������sensor������ -->
- <select id="getSensorData" resultType="java.util.LinkedHashMap">
- SELECT
- DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') time,
- <foreach collection="sensorKeys" item="sensorKey" separator=",">
+ <!-- ���������sensor������ -->
+ <select id="getSensorData" resultType="java.util.LinkedHashMap">
+ SELECT
+ DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') time,
+ <foreach collection="sensorKeys" item="sensorKey" separator=",">
hm.json->'$.${sensorKey}[0]' as '${sensorKey}',
hm.json->'$.${sensorKey}[1]' as 'min${sensorKey}',
hm.json->'$.${sensorKey}[2]' as 'max${sensorKey}'
</foreach>
- FROM
- history_minutely as hm
- <where>
- <if test="mac!=null">
+ FROM
+ history_minutely as hm
+ <where>
+ <if test="mac!=null">
and hm.mac=#{mac}
</if>
- and hm.time >= #{startTime}
- and hm.time <![CDATA[<]]> #{endTime}
- </where>
- ORDER BY
- hm.time
- </select>
+ and hm.time >= #{startTime}
+ and hm.time <![CDATA[<]]> #{endTime}
+ </where>
+ ORDER BY
+ hm.time
+ </select>
- <select id="getSensorData2020" resultType="java.util.LinkedHashMap">
- SELECT
- DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') time,
- <foreach collection="sensorKeys" item="sensorKey" separator=",">
+ <select id="getSensorData2020" resultType="java.util.LinkedHashMap">
+ SELECT
+ DATE_FORMAT(hm.time,'%Y-%m-%d %H:%i:%s') time,
+ <foreach collection="sensorKeys" item="sensorKey" separator=",">
hm.json->'$.${sensorKey}[0]' as '${sensorKey}',
hm.json->'$.${sensorKey}[1]' as 'min${sensorKey}',
hm.json->'$.${sensorKey}[2]' as 'max${sensorKey}'
</foreach>
- FROM
- history_minutely_${yearAndMonth} as hm
- <where>
- <if test="mac!=null">
+ FROM
+ history_minutely_${yearAndMonth} as hm
+ <where>
+ <if test="mac!=null">
and hm.mac=#{mac}
</if>
- and hm.time >= #{startTime}
- and hm.time <![CDATA[<]]> #{endTime}
- </where>
- ORDER BY
- hm.time
- </select>
+ and hm.time >= #{startTime}
+ and hm.time <![CDATA[<]]> #{endTime}
+ </where>
+ ORDER BY
+ hm.time
+ </select>
- <select id="getDevicesAvgDataToExcel" resultType="java.util.LinkedHashMap">
- select
- rs.monitorPointName,rs.name,
- <foreach collection="timeList" separator="," item="time">
+ <select id="getDevicesAvgDataToExcel" resultType="java.util.LinkedHashMap">
+ select
+ rs.monitorPointName,rs.name,
+ <foreach collection="timeList" separator="," item="time">
max(case time when #{time} then rs.${sensorKey} else "" end) as #{time}
</foreach>
- from
- (SELECT
- m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,
- <foreach collection="sensorKeys" separator="," item="sensorKey">
+ from
+ (SELECT
+ m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
</foreach>
- FROM
- history_${timeUnits} h,
- device d,
- monitor_point m
- WHERE
- h.mac=d.mac
- AND d.monitor_point_id=m.id
- AND h.time >= #{start}
- AND h.time <![CDATA[<=]]> #{end}
- AND h.mac in
- <foreach collection="macs" open="(" separator="," close=")"
- item="mac">
+ FROM
+ history_${timeUnits} h,
+ device d,
+ monitor_point m
+ WHERE
+ h.mac=d.mac
+ AND d.monitor_point_id=m.id
+ AND h.time >= #{start}
+ AND h.time <![CDATA[<=]]> #{end}
+ AND h.mac in
+ <foreach collection="macs" open="(" separator="," close=")"
+ item="mac">
#{mac}
</foreach>
- GROUP BY
- h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
- ORDER BY
- h.mac) rs
- GROUP BY rs.monitorPointName,rs.name
- order by rs.monitorPointName
- </select>
+ GROUP BY
+ h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
+ ORDER BY
+ h.mac) rs
+ GROUP BY rs.monitorPointName,rs.name
+ order by rs.monitorPointName
+ </select>
+
+ <select id="getDevicesSensorsAvgDataToExcel" resultType="java.util.LinkedHashMap">
+ select
+ rs.monitorPointName,rs.name,
+ <foreach collection="timeList" separator="," item="time">
+ max(case time when #{time} then rs.json else "" end) as #{time}
+ </foreach>
+ from
+ (SELECT
+ m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,h.json
+ FROM
+ history_${timeUnits} h,
+ device d,
+ monitor_point m
+ WHERE
+ h.mac=d.mac
+ AND d.monitor_point_id=m.id
+ AND h.time >= #{start}
+ AND h.time <![CDATA[<=]]> #{end}
+ AND h.mac in
+ <foreach collection="macs" open="(" separator="," close=")"
+ item="mac">
+ #{mac}
+ </foreach>
+ ORDER BY
+ h.mac) rs
+ GROUP BY rs.monitorPointName,rs.name
+ order by rs.monitorPointName
+ </select>
</mapper>
--
Gitblit v1.8.0