fengxiang
2018-06-28 b77f77dae23be890dd98e03a8a9abffec9e3d94c
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
<?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="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" resultType="com.moral.entity.MonitorPoint">
        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="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>
</mapper>