From c6842e8498c2d9b469890b38cd9f0d714392c445 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 01 十二月 2023 13:22:02 +0800 Subject: [PATCH] 1. 修改优化日统计和风险统计的逻辑 --- src/main/resources/mapper/ds1/DustStatisticsValueMapper.xml | 92 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 86 insertions(+), 6 deletions(-) diff --git a/src/main/resources/mapper/ds1/DustStatisticsValueMapper.xml b/src/main/resources/mapper/ds1/DustStatisticsValueMapper.xml index 40edb30..23b89f8 100644 --- a/src/main/resources/mapper/ds1/DustStatisticsValueMapper.xml +++ b/src/main/resources/mapper/ds1/DustStatisticsValueMapper.xml @@ -8,12 +8,12 @@ <id column="id" jdbcType="INTEGER" property="id" /> <result column="mn_code" jdbcType="VARCHAR" property="mnCode" /> <result column="lst" jdbcType="DATE" property="lst" /> - <result column="day_avg" jdbcType="VARCHAR" property="dayAvg" /> - <result column="min" jdbcType="VARCHAR" property="min" /> - <result column="max" jdbcType="VARCHAR" property="max" /> - <result column="day_online" jdbcType="VARCHAR" property="dayOnline" /> - <result column="day_valid" jdbcType="VARCHAR" property="dayValid" /> - <result column="day_exceeding" jdbcType="VARCHAR" property="dayExceeding" /> + <result column="day_avg" jdbcType="DOUBLE" property="dayAvg" /> + <result column="min" jdbcType="DOUBLE" property="min" /> + <result column="max" jdbcType="DOUBLE" property="max" /> + <result column="day_online" jdbcType="DOUBLE" property="dayOnline" /> + <result column="day_valid" jdbcType="DOUBLE" property="dayValid" /> + <result column="day_exceeding" jdbcType="DOUBLE" property="dayExceeding" /> <result column="type" jdbcType="VARCHAR" property="type" /> </resultMap> <sql id="Base_Column_List"> @@ -22,4 +22,84 @@ --> id, mn_code, lst, day_avg, min, max, day_online, day_valid, day_exceeding, type </sql> + + <insert id="dailyStatics"> + insert into dust_statistics_value(mn_code,lst,day_avg,min,max,day_online,day_valid,day_exceeding,type) + select a.* + from (select + mn_code as mn_code, + DATE(lst) as lst, + ROUND(AVG(dust_value),3) as day_avg, + min(dust_value) as min, + max(dust_value) as max, + ROUND(COUNT(*)/96, 4) as day_online, + ROUND(SUM(CASE WHEN dust_value >0 THEN 1 ELSE 0 END)/96, 4) as day_valid, + ROUND(SUM(CASE WHEN dust_value >= 1 THEN 1 ELSE 0 END)/96, 4) as day_exceeding, + 'day' as type + from ja_t_dust_site_data_info + where lst between #{beginTime} and #{endTime} + GROUP BY mn_code,DATE(lst) + ) as a + </insert> + <insert id="monthlyStatics"> + insert into dust_statistics_value(mn_code,lst,day_avg,min,max,day_online,day_valid,day_exceeding,type) + select a.* + from ( + SELECT + mn_code AS mn_code, + DATE_FORMAT(lst, '%Y-%m-01') AS month, + ROUND(AVG(dust_value), 3) AS month_avg, + MIN(dust_value) AS min, + MAX(dust_value) AS max, + ROUND(COUNT(*) / #{count}, 4) AS month_online, + ROUND(SUM(CASE WHEN flag = 'N' OR flag = 'A' THEN 1 ELSE 0 END) / #{count}, 4) AS month_valid, + ROUND(SUM(CASE WHEN dust_value >= 1 THEN 1 ELSE 0 END) / #{count}, 4) AS month_exceeding, + 'month' as type + FROM ja_t_dust_site_data_info + WHERE lst BETWEEN #{beginTime} and #{endTime} + GROUP BY mn_code, DATE_FORMAT(lst, '%Y-%m-01') + ) as a + </insert> + + <!-- 鏍规嵁绔欑偣鍚嶅瓧鍜屾椂娈佃繘琛岀粺璁″垎鏋�--> + <select id="selectByOrder" resultType="com.flightfeather.monitor.pojo.AnalysisDustData"> + select c.name,d.* + from dust_statistics_value as d + left join ja_t_dust_site_info as c on c.mn_code = d.mn_code + <where> + <if test="siteName != null and siteName != ''"> + and c.name = #{siteName} + </if> + <if test="beginTime != null and endTime != null"> + and d.lst between #{beginTime} and #{endTime} and d.type = 'day' + </if> + </where> + <if test="orderProp == 'lst'"> + order by d.lst + </if> + <if test="orderProp == 'day_avg'"> + order by d.day_avg + </if> + <if test="orderProp == 'min'"> + order by d.min + </if> + <if test="orderProp == 'max'"> + order by d.max + </if> + <if test="orderProp == 'day_online'"> + order by d.day_online + </if> + <if test="orderProp == 'day_valid'"> + order by d.day_valid + </if> + <if test="orderProp == 'day_exceeding'"> + order by d.day_exceeding + </if> + <if test="orderProp != null and asc"> + asc + </if> + <if test="orderProp != null and !asc"> + desc + </if> + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3