From a3ff4d366c6654e5cd139f74a0104d7e9a9fa0c9 Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Wed, 12 Aug 2020 15:55:36 +0800 Subject: [PATCH] 风场图update --- src/main/resources/mapper/HistoryDailyMapper.xml | 158 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 126 insertions(+), 32 deletions(-) diff --git a/src/main/resources/mapper/HistoryDailyMapper.xml b/src/main/resources/mapper/HistoryDailyMapper.xml index 549b64f..4d4fe67 100644 --- a/src/main/resources/mapper/HistoryDailyMapper.xml +++ b/src/main/resources/mapper/HistoryDailyMapper.xml @@ -1,36 +1,130 @@ <?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.HistoryDailyMapper"> - <select id="getEmissionsData" resultType="java.util.Map"> - SELECT - SUM(hd.`json` ->'$.${sensorKey}[0]') AS '${sensorKey}', - vdi.mac, - mp.`name` 'name' - FROM - history_daily hd, - view_device_info vdi, - monitor_point mp - <where> - hd.mac = vdi.mac - AND vdi.monitor_point_id = mp.id - AND vdi.device_tech = 1 - <if test="start != null"> - AND hd.time >= #{start} - </if> - <if test="end != null"> - AND hd.time < #{end} - </if> - <if test="regionCode != null"> - AND mp.${regionType}_code = #{regionCode} - </if> - <if test="orgIds != null and orgIds.size > 0"> - AND mp.organization_id IN - <foreach collection="orgIds" open="(" separator="," close=")" - item="listItem"> - #{listItem} - </foreach> - </if> - </where> - GROUP BY mp.`name`, vdi.mac - </select> + <select id="getEmissionsData" resultType="java.util.Map"> + SELECT + SUM(hd.`json` ->'$.${sensorKey}[0]') AS '${sensorKey}', + vdi.mac, + mp.`name` 'name' + FROM + history_daily hd, + view_device_info vdi, + monitor_point mp + <where> + hd.mac = vdi.mac + AND vdi.monitor_point_id = mp.id + AND vdi.device_tech = 1 + <if test="monitorPointId != null"> + AND mp.id = #{monitorPointId} + </if> + <if test="mac != null"> + AND hd.mac = #{mac} + </if> + <if test="start != null"> + AND hd.time >= #{start} + </if> + <if test="end != null"> + AND hd.time < #{end} + </if> + <if test="regionCode != null"> + AND mp.${regionType}_code = #{regionCode} + </if> + <if test="orgIds != null and orgIds.size > 0"> + AND mp.organization_id IN + <foreach collection="orgIds" open="(" separator="," close=")" + item="listItem"> + #{listItem} + </foreach> + </if> + </where> + GROUP BY mp.`name`, vdi.mac + </select> + + + <select id="getOverproofData" resultType="java.util.Map"> + SELECT + AVG( hd.`json` -> '$.${sensorKey}[0]' ) avg, + ( SELECT DISTINCT limit_val ->> '$.${sensorKey}' FROM view_device_density WHERE monitor_point_id = + vdd.monitor_point_id AND device_tech = vdd.device_tech ) `limit`, + ( SELECT mp.`name` FROM monitor_point mp WHERE mp.id = vdd.monitor_point_id ) `name`, + vdd.device_tech + FROM + history_daily hd, + view_device_density vdd, + ( + SELECT + vdd.monitor_point_id + FROM + history_daily hd, + device vdd, + monitor_point mp + <where> + hd.mac = vdd.mac + AND mp.id = vdd.monitor_point_id + <if test="start != null"> + AND hd.time >= #{start} + </if> + <if test="end != null"> + AND hd.time < #{end} + </if> + <if test="regionCode != null"> + AND mp.${regionType}_code = #{regionCode} + </if> + <if test="orgIds != null and orgIds.size > 0"> + AND mp.organization_id IN + <foreach collection="orgIds" open="(" separator="," close=")" + item="listItem"> + #{listItem} + </foreach> + </if> + </where> + GROUP BY + vdd.mac, + vdd.monitor_point_id + HAVING + AVG( hd.`json` -> '$.${sensorKey}[0]' ) >= ( SELECT limit_val ->> '$.${sensorKey}' FROM view_device_density + WHERE mac = vdd.mac ) * (1 + #{overproofRatio} * 1) + <if test="overproofRatio != 0 and overproofRatio != 3"> + AND AVG( hd.`json` -> '$.${sensorKey}[0]' ) < ( SELECT limit_val ->> '$.${sensorKey}' FROM + view_device_density WHERE mac = vdd.mac ) * (2 + #{overproofRatio} * 1) + </if> + ) ta + <where> + hd.mac = vdd.mac + AND vdd.monitor_point_id = ta.monitor_point_id + <if test="start != null"> + AND hd.time >= #{start} + </if> + <if test="end != null"> + AND hd.time < #{end} + </if> + </where> + GROUP BY + vdd.monitor_point_id, + vdd.device_tech + </select> + + <!-- ������������mac������������������������������������������������������ --> + <select id="getTraceabilityData" resultType="java.util.Map"> + SELECT + json ->'$.${sensorKey}[0]' AS '${sensorKey}' + FROM + history_daily + <where> + <if test="mac!=null"> + AND mac=#{mac} + </if> + <if test="time!=null"> + AND time=#{time} + </if> + </where> + </select> + + <!-- ������������mac������������������������������������������������������ --> + <select id="getDataByTimeSlot" resultType="java.util.Map"> + SELECT * + FROM history_daily + where mac=#{mac} + AND time between #{startTime} and #{endTime} + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0