吉安感知网项目-后端
linwei
5 hours ago 51a551a7f8eae7654f973d45cd2fa2952774673d
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?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.sxkj.fw.area.mapper.FwPoliceStationMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="fwPoliceStationResultMap" type="org.sxkj.fw.area.entity.FwPoliceStationEntity">
        <result column="id" property="id"/>
        <result column="station_name" property="stationName"/>
        <result column="address" property="address"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="contact_person" property="contactPerson"/>
        <result column="contact_phone" property="contactPhone"/>
        <result column="area_code" property="areaCode"/>
        <result column="create_user" property="createUser"/>
        <result column="create_dept" property="createDept"/>
        <result column="create_time" property="createTime"/>
        <result column="update_user" property="updateUser"/>
        <result column="update_time" property="updateTime"/>
        <result column="status" property="status"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
 
 
    <select id="selectFwPoliceStationPage" resultMap="fwPoliceStationResultMap">
        select * from ja_fw_police_station
        <where>
            is_deleted = 0
            <if test="param2.id != null and param2.id != ''">
                and id = #{param2.id}
            </if>
            <if test="param2.stationName != null and param2.stationName != ''">
                and station_name like concat('%', #{param2.stationName}, '%')
            </if>
            <if test="param2.address != null and param2.address != ''">
                and address like concat('%', #{param2.address}, '%')
            </if>
            <if test="param2.longitude != null and param2.longitude != ''">
                and longitude = #{param2.longitude}
            </if>
            <if test="param2.latitude != null and param2.latitude != ''">
                and latitude = #{param2.latitude}
            </if>
            <if test="param2.contactPerson != null and param2.contactPerson != ''">
                and contact_person like concat('%', #{param2.contactPerson}, '%')
            </if>
            <if test="param2.contactPhone != null and param2.contactPhone != ''">
                and contact_phone = #{param2.contactPhone}
            </if>
            <if test="param2.areaCode != null and param2.areaCode != ''">
                and area_code = #{param2.areaCode}
            </if>
            <if test="param2.createUser != null and param2.createUser != ''">
                and create_user = #{param2.createUser}
            </if>
            <if test="param2.createDept != null and param2.createDept != ''">
                and create_dept = #{param2.createDept}
            </if>
            <if test="param2.createTime != null and param2.createTime != ''">
                and create_time = #{param2.createTime}
            </if>
            <if test="param2.updateUser != null and param2.updateUser != ''">
                and update_user = #{param2.updateUser}
            </if>
            <if test="param2.updateTime != null and param2.updateTime != ''">
                and update_time = #{param2.updateTime}
            </if>
            <if test="param2.status != null and param2.status != ''">
                and status = #{param2.status}
            </if>
        </where>
    </select>
 
    <select id="selectFwPoliceStationList" resultMap="fwPoliceStationResultMap">
        select * from ja_fw_police_station
        <where>
            is_deleted = 0
            <if test="stationName != null and stationName != ''">
                and station_name like concat('%', #{stationName}, '%')
            </if>
        </where>
    </select>
 
 
    <select id="exportFwPoliceStation" resultType="org.sxkj.fw.area.excel.FwPoliceStationExcel">
        SELECT * FROM ja_fw_police_station ${ew.customSqlSegment}
    </select>
 
    <!-- 根据多边形区域查询派出所 -->
    <!--
        历史遗留问题:数据库表中 longitude 字段实际存储的是纬度值,latitude 字段实际存储的是经度值
        解决方案:
        1. POLYGON:用户输入是标准格式(经度 纬度),不做坐标交换
        2. POINT:数据库字段存反,构建时交换为 POINT(latitude, longitude)
    -->
    <select id="selectByPolygons" resultMap="fwPoliceStationResultMap">
        SELECT * FROM ja_fw_police_station
        WHERE is_deleted = 0
          AND longitude IS NOT NULL
          AND latitude IS NOT NULL
          AND (
            <foreach collection="polygons" item="polygon" separator=" OR ">
                ST_Contains(
                    ST_SRID(ST_GeomFromText(#{polygon}), 4326),
                    ST_GeomFromText(CONCAT('POINT(', latitude, ' ', longitude, ')'), 4326)
                )
            </foreach>
          )
    </select>
 
</mapper>