From 0b646569a295da41eed5cbbcc80309a7472a47a0 Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Wed, 12 Jun 2019 15:30:47 +0800 Subject: [PATCH] 更改上传导包*问题 --- src/main/resources/mapper/HistoryMinutelyMapper.xml | 126 +++++++++++++++++++++++++++++++++++------ 1 files changed, 107 insertions(+), 19 deletions(-) diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml index 99b0cb4..3a2d3c1 100644 --- a/src/main/resources/mapper/HistoryMinutelyMapper.xml +++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml @@ -1,29 +1,44 @@ <?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="getDayAQIByDevice" resultType="map"> +<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 - AVG(json -> '$.e1[0]') e1, - AVG(json -> '$.e2[0]') e2, - AVG(json -> '$.e10[0]') e10, - AVG(json -> '$.e11[0]') e11, - AVG(json -> '$.e15[0]') e15, - AVG(json -> '$.e16[0]') e16 + <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 < #{end} </select> - <select id="getMonitorPointOrDeviceAvgData" resultType="map"> + <select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map"> 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 + history_${timeUnits} h WHERE h.time >= #{start} AND h.time <![CDATA[<]]> #{end} @@ -32,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 @@ -43,5 +77,59 @@ ORDER BY 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=","> + json->'$.${sensorKey}[0]' as '${sensorKey}' + </foreach> + </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"> + 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='"PROFESSION"==dataCondition.deviceDimension.toString()'> + and dev.profession_id = #{dataCondition.dimensionValue} + </if> + <if test='"MONITORPOINT"==dataCondition.areaRange.toString()'> + and mpt.id = #{dataCondition.areaRangeId} + </if> + <if test='"PROVINCE"==dataCondition.areaRange.toString()'> + and mpt.province_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() or 'DEVICE'!=dataCondition.areaRange.toString()"> + GROUP BY format_time + </if> + ORDER BY format_time asc + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0