zmc
2023-11-02 6f28997aa8d9f62e0c54838490a473041f709742
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?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.flightfeather.monitor.domain.ds1.mapper.DustStatisticsValueMapper">
  <resultMap id="BaseResultMap" type="com.flightfeather.monitor.domain.ds1.entity.DustStatisticsValue">
    <!--
      WARNING - @mbg.generated
    -->
    <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="type" jdbcType="VARCHAR" property="type" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--
      WARNING - @mbg.generated
    -->
    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,
    CONCAT(ROUND(COUNT(*)/96*100, 2), '%')  as day_online,
    CONCAT(ROUND(SUM(CASE WHEN dust_value >0 THEN 1 ELSE 0 END)/96 *100, 2), '%') as day_valid,
    CONCAT(ROUND(SUM(CASE WHEN dust_value >= 1  THEN 1 ELSE 0 END)/96*100,2),'%') 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,
    CONCAT(ROUND(COUNT(*) / #{count} * 100, 2), '%') AS month_online,
    CONCAT(ROUND(SUM(CASE WHEN flag = 'N' OR flag = 'A' THEN 1 ELSE 0 END) / #{count} * 100, 2), '%') AS month_valid,
    CONCAT(ROUND(SUM(CASE WHEN dust_value >= 1 THEN 1 ELSE 0 END) / #{count} * 100, 2), '%') 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>
</mapper>