林火综合应急信息管理系统cloud后端
guoshilong
2023-03-13 d4bb9224e835cf0221be254d349efb3d4aaab68b
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?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="org.springblade.modules.dp.mapper.ComprehensiveStatisticsMapper">
 
 
    <select id="getDataOverview" resultType="java.util.HashMap">
        SELECT a.deptNumber,b.policeCarNumber,c.deviceNumber,d.outNumber
        FROM(
            ( SELECT COUNT(*) AS deptNumber FROM blade_dept dept WHERE dept.is_deleted = 0 ) a,
            ( SELECT COUNT(*) AS policeCarNumber FROM sys_vehicle vehicle WHERE vehicle.is_deleted = 0 ) b,
            ( SELECT COUNT(*) AS deviceNumber FROM sys_device device WHERE device.is_deleted = 0 ) c,
            ( SELECT COUNT(*) AS outNumber FROM sys_fire fire WHERE fire.is_deleted = 0 AND fire.status !=1 ) d
        );
    </select>
 
    <select id="getDeptStatistics" resultType="java.util.HashMap">
        SELECT DISTINCT a.city cityCode,a.cityNumber,region.city_name cityName
        FROM
        (
            SELECT dept.city,COUNT(*) AS cityNumber
            FROM blade_dept dept WHERE dept.is_deleted = 0
            GROUP BY dept.city
        ) a LEFT JOIN blade_region region ON region.city_code = a.city
    </select>
    <select id="getFireCallSource" resultType="java.util.HashMap">
        SELECT
            CONVERT(COUNT(*),CHAR) AS number,
            fire.find_way findWay,
            biz.dict_value findWayName
        FROM
            sys_fire fire
            LEFT JOIN blade_dict_biz biz ON biz.dict_key = fire.find_way AND biz.`code` = 'fire_find_way'
        WHERE
            fire.is_deleted = 0
        GROUP BY
            fire.find_way
    </select>
    <select id="getFireReportingTrend" resultType="java.util.HashMap">
        SELECT
            m.id month,IFNULL(b.number,0) number
        FROM
            (
            SELECT 1 AS id UNION
            SELECT 2 UNION
            SELECT 3 UNION
            SELECT 4 UNION
            SELECT 5 UNION
            SELECT 6 UNION
            SELECT 7 UNION
            SELECT 8 UNION
            SELECT 9 UNION
            SELECT 10 UNION
            SELECT 11 UNION
            SELECT 12
            ) m
        LEFT JOIN
        (
            SELECT MONTH(fire.alarm_time) month,COUNT(*) number
            FROM sys_fire fire
            WHERE fire.is_deleted = 0
            GROUP BY MONTH ( fire.alarm_time )
        ) b ON b.`month` = m.id
        ORDER BY month
    </select>
 
    <select id="getProneAreasStatistics" resultType="java.util.HashMap">
        SELECT
            address,COUNT(*) times
        FROM
            `sys_fire`
        WHERE
            is_deleted = 0
            AND find_way = 1
            AND FIND_IN_SET(#{regionCode},REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''))
        GROUP BY
            address
        ORDER BY times DESC
            LIMIT #{limit}
    </select>
</mapper>