jinpengyong
2020-09-08 adde1ed1a99622c80a95dea83e294711d295c55c
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?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.moral.mapper.MonitorPointMapper">
    <resultMap id="BaseResultMap" type="com.moral.entity.MonitorPoint">
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="longitude" jdbcType="REAL" property="longitude"/>
        <result column="latitude" jdbcType="REAL" property="latitude"/>
        <result column="province_code" jdbcType="INTEGER" property="provinceCode"/>
        <result column="city_code" jdbcType="INTEGER" property="cityCode"/>
        <result column="area_code" jdbcType="INTEGER" property="areaCode"/>
        <result column="town_code" jdbcType="INTEGER" property="townCode"/>
        <result column="organization_id" jdbcType="INTEGER" property="organizationId"/>
        <result column="address" jdbcType="VARCHAR" property="address"/>
        <result column="is_delete" jdbcType="CHAR" property="isDelete"/>
        <result column="description" jdbcType="VARCHAR" property="description"/>
        <result column="state" jdbcType="INTEGER" property="state"/>
        <!-- 与省市县一对一的关系 -->
        <association property="areaNames" javaType="com.moral.entity.AreaNames">
            <result column="province_name" property="provinceName" jdbcType="VARCHAR"/>
            <result column="city_name" property="cityName" jdbcType="VARCHAR"/>
            <result column="area_name" property="areaName" jdbcType="VARCHAR"/>
            <result column="town_name" property="townName" jdbcType="VARCHAR"/>
            <result column="village_name" property="villageName" jdbcType="VARCHAR"/>
        </association>
        <association property="organization" javaType="com.moral.entity.Organization">
            <result column="organization_id" property="id" jdbcType="INTEGER"/>
            <result column="organization_name" property="name" jdbcType="VARCHAR"/>
        </association>
    </resultMap>
    <sql id="Example_Where_Clause">
        <where>
            <foreach collection="oredCriteria" item="criteria" separator="or">
                <if test="criteria.valid">
                    <trim prefix="(" prefixOverrides="and" suffix=")">
                        <foreach collection="criteria.criteria" item="criterion">
                            <choose>
                                <when test="criterion.noValue">
                                    and ${criterion.condition}
                                </when>
                                <when test="criterion.singleValue">
                                    and ${criterion.condition} #{criterion.value}
                                </when>
                                <when test="criterion.betweenValue">
                                    and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                                </when>
                                <when test="criterion.listValue">
                                    and ${criterion.condition}
                                    <foreach close=")" collection="criterion.value" item="listItem" open="("
                                             separator=",">
                                        #{listItem}
                                    </foreach>
                                </when>
                            </choose>
                        </foreach>
                    </trim>
                </if>
            </foreach>
        </where>
    </sql>
    <sql id="Base_Column_List">
        id, name, longitude, latitude, province_code, city_code, area_code, organization_id,
        address, is_delete, description
    </sql>
    <sql id="Relation_Province_City_Area_List">
        are.area_name, cti.city_name, pro.province_name, t.town_name, v.village_name
    </sql>
    <select id="selectWithAreaNameByExample" parameterType="tk.mybatis.mapper.entity.Example" resultMap="BaseResultMap">
        select
        <if test="distinct">
            distinct
        </if>
        mpt.* ,
        org.name as organization_name ,
        <include refid="Relation_Province_City_Area_List"/>
        from monitor_point mpt
        left join area are on mpt.area_code = are.area_code
        left join city cti on mpt.city_code = cti.city_code
        left join province pro on mpt.province_code = pro.province_code
        left join organization org on mpt.organization_id = org.id
        left join town t on mpt.town_code = t.town_code
        left join village v on mpt.village_code = v.village_code
        where mpt.id in (
        select id from monitor_point
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            order by ${orderByClause}
        </if>
        )
    </select>
    <select id="getMonitorPointsByAreaName" resultMap="BaseResultMap">
        SELECT
        mp.*
        FROM
        monitor_point mp,
        area a
        <if test="cityName != null">
            ,city c
        </if>
        WHERE
        mp.area_code = a.area_code
        AND a.area_name = #{areaName}
        <if test="cityName != null">
            AND c.city_name = #{cityName}
            AND mp.city_code = c.city_code
        </if>
    </select>
    <select id="selectByMap" parameterType="java.util.Map" resultMap="BaseResultMap">
        SELECT mpt.* from monitor_point mpt
        <where>
            <if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
                (
                1 > 1
                <if test="orgIds!=null and orgIds.size() > 0">
                    or mpt.organization_id in
                    <foreach collection="orgIds" item="tempOrgId" open="(" close=")" separator=",">
                        #{tempOrgId,jdbcType=INTEGER}
                    </foreach>
                </if>
                )
            </if>
            <![CDATA[
            AND mpt.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}
            AND mpt.longitude > #{mapBounds.Le,jdbcType=NUMERIC}
            AND mpt.latitude  < #{mapBounds.Fe,jdbcType=NUMERIC}
            AND mpt.latitude  > #{mapBounds.Ke,jdbcType=NUMERIC}
              ]]>
            <if test="regionCode != null">
                AND mpt.${regionType}_code = #{regionCode}
            </if>
 
            <if test="isDelete != null">
                AND mpt.is_delete = #{isDelete,jdbcType=VARCHAR}
            </if>
        </where>
    </select>
    <select id="selectOrganizationIds" parameterType="integer" resultType="integer">
                call proc_organizationIds_GetByMonitorPointId(#{id,jdbcType=NUMERIC})
    </select>
    <select id="selectVersionsById" parameterType="integer" resultType="integer">
            select version from device_version dve
            right join device dev  on dve.id = dev.device_version_id
            right join monitor_point mpt on mpt.id = dev.monitor_point_id
            where mpt.id = #{id}  ORDER BY version DESC
    </select>
    <select id="selectAllById" resultType="java.util.Map">
            SELECT *
            FROM monitor_point
            WHERE id = #{id}
    </select>
    <select id="getIdByOrganizationId" resultType="java.util.Map">
        SELECT id
        FROM monitor_point
        WHERE organization_id IN
        <foreach collection="organizationIdList" index="index" item="organizationId" open="(" separator="," close=")">
            #{organizationId}
        </foreach>
    </select>
 
    <select id="getDeviceList" resultType="com.moral.entity.Device">
        SELECT d.* FROM `device` as d,monitor_point as mp
        where d.monitor_point_id=mp.id
        and mp.id=#{id}
    </select>
    <select id="getMonitorPointById" resultType="com.moral.entity.MonitorPoint">
        select * from monitor_point where id=#{id}
    </select>
    <select id="getMonitorPointListByAccountId" resultType="com.moral.entity.MonitorPoint">
        SELECT mp.* FROM account a,`monitor_point` mp,organization o
        where a.organization_id=o.id
        and o.id=mp.organization_id
        and a.id=#{id};
    </select>
    <select id="byIdGetMonitorPoint" resultType="com.moral.entity.MonitorPoint" resultMap="BaseResultMap">
        SELECT * FROM `monitor_point` where id=#{id}
    </select>
 
    <select id="getFirstMonitorPointByAreaCode" resultType="com.moral.entity.MonitorPoint" resultMap="BaseResultMap">
        select * from monitor_point where area_code=#{areaCode} limit 0,1
    </select>
 
    <select id="getFirstMonitorPointByCityCode" resultType="com.moral.entity.MonitorPoint" resultMap="BaseResultMap">
        select * from monitor_point where city_code=#{cityCode} limit 0,1
    </select>
 
    <select id="getFirstMonitorPointByProvinceCode" resultType="com.moral.entity.MonitorPoint"
            resultMap="BaseResultMap">
        select * from monitor_point where province_code=#{provinceCode} limit 0,1
    </select>
 
    <select id="getMonitorList" resultMap="BaseResultMap">
        select * from monitor_point
        where
        <if test="areaCode != null">
            area_code = #{areaCode}
        </if>
 
        <if test="cityCode != null">
            city_code = #{cityCode}
        </if>
        <if test="provinceCode != null">
            province_code = #{provinceCode}
        </if>
    </select>
</mapper>