| <?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" 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> | 
| </mapper> |