林火综合应急信息管理系统cloud后端
guoshilong
2023-03-13 a693e3cd9fbd5c016ac4b905fa4e2bb2dbdf1f47
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?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.MilitaryLocalCoordinationMapper">
 
    <select id="gerSurroundingDeptList" resultType="java.util.HashMap">
        SELECT id,dept_name,lon,lat,
        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
        FROM `blade_dept`
        WHERE is_deleted = 0
        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
    </select>
 
    <select id="gerSurroundingDeviceList" resultType="java.util.HashMap">
         SELECT id,name,lon,lat,
        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
        FROM sys_device
        WHERE is_deleted = 0
        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
    </select>
 
    <select id="gerSurroundingVehicleList" resultType="java.util.HashMap">
        SELECT id,license_plate,lon,lat,
        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
        FROM sys_vehicle
        WHERE is_deleted = 0
        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
    </select>
 
    <resultMap id="fireAllDetail" type="org.springblade.modules.fireSupplement.vo.FireSupplementVO">
        <result column="id" property="id"/>
        <result column="fire_id" property="fireId"/>
        <result column="lon" property="lon"/>
        <result column="lat" property="lat"/>
        <result column="alarm_time" property="alarmTime"/>
        <result column="province_name" property="province"/>
        <result column="city_name" property="city"/>
        <result column="district_name" property="district"/>
        <result column="sumInjuryPerson" property="sumInjuryPerson"/>
        <result column="fire_reason" property="fireReason"/>
        <result column="tree_species" property="treeSpecies"/>
        <result column="extinguishing_time" property="extinguishingTime"/>
        <result column="perpetrator" property="perpetrator"/>
        <result column="sum_person" property="sumPerson"/>
        <result column="punish_person" property="punishPerson"/>
        <result column="situation" property="situation"/>
        <result column="minor_injury_person" property="minorInjuryPerson"/>
        <result column="serious_injury_person" property="seriousInjuryPerson"/>
        <result column="death_person" property="deathPerson"/>
        <result column="economic_loss" property="economicLoss" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result column="damage_area" property="damageArea" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result column="police_resources" property="policeResources" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
    </resultMap>
 
    <select id="getFireAllDetail" resultMap="fireAllDetail">
        SELECT
            sup.id,
            sup.fire_id,
            fire.location,
            fire.lon,
            fire.lat,
            fire.alarm_time,
 
            region.province_name,
            region.city_name,
            region.district_name,
 
            sup.extinguishing_time,
            sup.tree_species,
            sup.fire_reason,
            sup.perpetrator,
            sup.damage_area,
            sup.economic_loss,
            (sup.minor_injury_person+sup.serious_injury_person+sup.death_person) as sumInjuryPerson,
            sup.minor_injury_person,
            sup.serious_injury_person,
            sup.death_person,
            sup.police_resources,
            sup.situation,
            sup.sum_person,
            sup.punish_person
        FROM
            sys_fire fire
            LEFT JOIN sys_fire_supplement sup ON sup.fire_id = fire.id
            LEFT JOIN
            (
                    SELECT
                            id,
                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',1),',',-1) provinceCode,
                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',2),',',-1) cityCode,
                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',3),',',-1) districtCode
                    FROM sys_fire WHERE is_deleted = 0 AND id = #{fireId}
            ) r ON fire.id = r.id
            LEFT JOIN blade_region region ON region.code = r.districtCode
        WHERE
            fire.id = #{fireId}
    </select>
</mapper>