| | |
| | | <?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> |