| <?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.dy.pipIrrGlobal.daoPr.PrIntakeMapper"> | 
|   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrIntake"> | 
|     <!--@mbg.generated--> | 
|     <!--@Table pr_intake--> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="countyId" jdbcType="BIGINT" property="countyId" /> | 
|     <result column="townId" jdbcType="BIGINT" property="townId" /> | 
|     <result column="villageId" jdbcType="BIGINT" property="villageId" /> | 
|     <result column="divideId" jdbcType="BIGINT" property="divideId" /> | 
|     <result column="blockId" jdbcType="BIGINT" property="blockId" /> | 
|     <result column="name" jdbcType="VARCHAR" property="name" /> | 
|     <result column="lng" jdbcType="DOUBLE" property="lng" /> | 
|     <result column="lat" jdbcType="DOUBLE" property="lat" /> | 
|     <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | 
|     <result column="operator" jdbcType="BIGINT" property="operator" /> | 
|     <result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" /> | 
|     <result column="deleted" jdbcType="TINYINT" property="deleted" /> | 
|   </resultMap> | 
|   <sql id="Base_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, countyId, townId, villageId, divideId, blockId, `name`, lng, lat, remarks, `operator`,  | 
|     operateDt, deleted | 
|   </sql> | 
|   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|     <!--@mbg.generated--> | 
|     select  | 
|     <include refid="Base_Column_List" /> | 
|     from pr_intake | 
|     where id = #{id,jdbcType=BIGINT} and deleted = 0 | 
|   </select> | 
|   | 
|   <delete id="deleteLogicById" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     update pr_intake | 
|     set deleted = 1 | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   | 
|   <select id="selectAll" resultMap="BaseResultMap"> | 
|     <!--@mbg.generated--> | 
|     select | 
|     <include refid="Base_Column_List"/> | 
|     from pr_intake | 
|     where deleted != 1 | 
|   </select> | 
|   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     delete from pr_intake | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> | 
|     <!--@mbg.generated--> | 
|     insert into pr_intake (id, countyId, townId,  | 
|       villageId, divideId, blockId,  | 
|       `name`, lng, lat, remarks,  | 
|       `operator`, operateDt, deleted | 
|       ) | 
|     values (#{id,jdbcType=BIGINT}, #{countyId,jdbcType=BIGINT}, #{townId,jdbcType=BIGINT}, | 
|       #{villageId,jdbcType=BIGINT}, #{divideId,jdbcType=BIGINT}, #{blockId,jdbcType=BIGINT}, | 
|       #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remarks,jdbcType=VARCHAR},  | 
|       #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT} | 
|       ) | 
|   </insert> | 
|   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> | 
|     <!--@mbg.generated--> | 
|     insert into pr_intake | 
|     <trim prefix="(" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         id, | 
|       </if> | 
|       <if test="countyId != null"> | 
|         countyId, | 
|       </if> | 
|       <if test="townId != null"> | 
|         townId, | 
|       </if> | 
|       <if test="villageId != null"> | 
|         villageId, | 
|       </if> | 
|       <if test="divideId != null"> | 
|         divideId, | 
|       </if> | 
|       <if test="blockId != null"> | 
|         blockId, | 
|       </if> | 
|       <if test="name != null"> | 
|         `name`, | 
|       </if> | 
|       <if test="lng != null"> | 
|         lng, | 
|       </if> | 
|       <if test="lat != null"> | 
|         lat, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         remarks, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator`, | 
|       </if> | 
|       <if test="operateDt != null"> | 
|         operateDt, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         deleted, | 
|       </if> | 
|     </trim> | 
|     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         #{id,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="countyId != null"> | 
|         #{countyId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="townId != null"> | 
|         #{townId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="villageId != null"> | 
|         #{villageId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="divideId != null"> | 
|         #{divideId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="blockId != null"> | 
|         #{blockId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="name != null"> | 
|         #{name,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="lng != null"> | 
|         #{lng,jdbcType=DOUBLE}, | 
|       </if> | 
|       <if test="lat != null"> | 
|         #{lat,jdbcType=DOUBLE}, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         #{remarks,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="operateDt != null"> | 
|         #{operateDt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         #{deleted,jdbcType=TINYINT}, | 
|       </if> | 
|     </trim> | 
|   </insert> | 
|   <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> | 
|     <!--@mbg.generated--> | 
|     update pr_intake | 
|     <set> | 
|       <if test="countyId != null"> | 
|         countyId = #{countyId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="townId != null"> | 
|         townId = #{townId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="villageId != null"> | 
|         villageId = #{villageId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="divideId != null"> | 
|         divideId = #{divideId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="blockId != null"> | 
|         blockId = #{blockId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="name != null"> | 
|         `name` = #{name,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="lng != null"> | 
|         lng = #{lng,jdbcType=DOUBLE}, | 
|       </if> | 
|       <if test="lat != null"> | 
|         lat = #{lat,jdbcType=DOUBLE}, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         remarks = #{remarks,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator` = #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="operateDt != null"> | 
|         operateDt = #{operateDt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         deleted = #{deleted,jdbcType=TINYINT}, | 
|       </if> | 
|     </set> | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> | 
|     <!--@mbg.generated--> | 
|     update pr_intake | 
|     set countyId = #{countyId,jdbcType=BIGINT}, | 
|       townId = #{townId,jdbcType=BIGINT}, | 
|       villageId = #{villageId,jdbcType=BIGINT}, | 
|       divideId = #{divideId,jdbcType=BIGINT}, | 
|       blockId = #{blockId,jdbcType=BIGINT}, | 
|       `name` = #{name,jdbcType=VARCHAR}, | 
|       lng = #{lng,jdbcType=DOUBLE}, | 
|       lat = #{lat,jdbcType=DOUBLE}, | 
|       remarks = #{remarks,jdbcType=VARCHAR}, | 
|       `operator` = #{operator,jdbcType=BIGINT}, | 
|       operateDt = #{operateDt,jdbcType=TIMESTAMP}, | 
|       deleted = #{deleted,jdbcType=TINYINT} | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   | 
|   <!--根据指定条件获取取水口记录数--> | 
|   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
|     SELECT COUNT(*) AS recordCount | 
|     FROM pr_intake ge | 
|     INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
|     INNER JOIN ba_block blo ON divi.blockId = blo.id | 
|     LEFT JOIN ba_district country ON ge.countyId = country.id | 
|     LEFT JOIN ba_district town ON ge.townId = town.id | 
|     LEFT JOIN ba_district village ON ge.villageId = village.id | 
|     <where> | 
|       ge.deleted = 0 | 
|       AND divi.deleted = 0 | 
|       and blo.deleted = 0 | 
|       <if test="intakeName != null and intakeName != ''"> | 
|         AND ge.name LIKE CONCAT('%', #{intakeName}, '%') | 
|       </if> | 
|   | 
|       <if test = "divideId != null and divideId !=''"> | 
|         AND divi.id = #{divideId} | 
|       </if> | 
|   | 
|       <if test = "blockId != null and blockId !=''"> | 
|         AND blo.id = #{blockId} | 
|       </if> | 
|   | 
|       <if test="isBinded == 0"> | 
|         AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0) | 
|       </if> | 
|       <if test="isBinded == 1"> | 
|         AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0) | 
|       </if> | 
|       <if test="isBinded == null"> | 
|   | 
|       </if> | 
|       <if test="address != null and address != ''"> | 
|         AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%') | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   <!--根据指定条件获取取水口记录--> | 
|   <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake"> | 
|     SELECT | 
|     CAST(ge.id AS char)                                 AS intakeId, | 
|     ge.`name`                                           AS intakeName, | 
|     CAST(divi.id AS char)                               AS divideId, | 
|     divi.`name`                                         AS divideName, | 
|     CAST(blo.id AS char)                                AS blockId, | 
|     blo.`name`                                          AS blockName, | 
|     ge.lng, | 
|     ge.lat, | 
|     ge.remarks, | 
|     ge.operator, | 
|     ge.operateDt                                        As operateDt, | 
|     (CASE | 
|     WHEN ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)  THEN "未绑定" | 
|     WHEN ge.id IN(SELECT intakeId FROM pr_controller  where deleted = 0)  THEN "已绑定" | 
|     END) AS isBind, | 
|     CONCAT(country.`name`, town.`name`, village.`name`) AS address | 
|     FROM pr_intake ge | 
|     INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
|     INNER JOIN ba_block blo ON divi.blockId = blo.id | 
|     LEFT JOIN ba_district country ON ge.countyId = country.id | 
|     LEFT JOIN ba_district town ON ge.townId = town.id | 
|     LEFT JOIN ba_district village ON ge.villageId = village.id | 
|     <where> | 
|       ge.deleted = 0 | 
|       AND divi.deleted = 0 | 
|       and blo.deleted = 0 | 
|       <if test="intakeName != null and intakeName != ''"> | 
|         AND ge.name LIKE CONCAT('%', #{intakeName}, '%') | 
|       </if> | 
|   | 
|       <if test = "divideId != null and divideId !=''"> | 
|         AND divi.id = #{divideId} | 
|       </if> | 
|   | 
|       <if test = "blockId != null and blockId !=''"> | 
|         AND blo.id = #{blockId} | 
|       </if> | 
|   | 
|       <if test="isBinded == 0"> | 
|         AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0) | 
|       </if> | 
|       <if test="isBinded == 1"> | 
|         AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0) | 
|       </if> | 
|       <if test="isBinded == null"> | 
|   | 
|       </if> | 
|       <if test="address != null and address != ''"> | 
|         AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%') | 
|       </if> | 
|     </where> | 
|     ORDER BY ge.operateDt DESC | 
|     <if test="pageCurr != null and pageSize != null"> | 
|       LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} | 
|     </if> | 
|   </select> | 
|   | 
|   <!--根据下级获取上一级地址--> | 
|   <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long"> | 
|     select dis_tow.* | 
|     from ba_district dis_vil | 
|     inner join | 
|     ba_district dis_tow | 
|     on dis_vil.supperId = dis_tow.id | 
|     where dis_vil.id = #{vaId,jdbcType=BIGINT} | 
|   </select> | 
|   | 
|   <!--根据取水口编号获取未删除的取水口数量--> | 
|   <select id="getRecordCountOfIntake" resultType="java.lang.Integer"> | 
|     SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId} | 
|   </select> | 
|   | 
|   <!--根据村ID获取全部地址--> | 
|   <select id="getAddressByVillageId" parameterType="_long" resultType="java.lang.String"> | 
|     select | 
|     CONCAT(dis_province.`name`, dis_city.`name`, dis_county.`name`, dis_town.`name`, dis_village.`name`) AS address | 
|     from ba_district dis_village | 
|     inner join ba_district dis_town    on dis_village.supperId = dis_town.id | 
|     inner join ba_district dis_county    on dis_town.supperId = dis_county.id | 
|     inner join ba_district dis_city    on dis_county.supperId = dis_city.id | 
|     inner join ba_district dis_province    on dis_city.supperId = dis_province.id | 
|     where dis_village.id = #{villageId,jdbcType=BIGINT} | 
|   </select> | 
|   | 
|   <!--根据区域Id获取区域等级--> | 
|   <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer"> | 
|     select | 
|     region.level | 
|     from ba_district region | 
|     where region.id = #{regionId,jdbcType=BIGINT} | 
|   </select> | 
|   | 
|   <!--获取未绑控制器的取水口列表--> | 
|   <select id="getNoBindingIntakes" resultType="java.util.HashMap"> | 
|     SELECT | 
|         CAST(inta.id AS char)AS intakeId, | 
|         name AS intakeName | 
|     FROM pr_intake inta | 
|     WHERE id NOT IN(SELECT intakeId FROM pr_controller) AND deleted = 0 | 
|   </select> | 
|   | 
| </mapper> |