|  |  | 
 |  |  | <?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"> | 
 |  |  |     <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, | 
 |  |  |       </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> | 
 |  |  |         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> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取取水口记录数--> | 
 |  |  |   <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 | 
 |  |  |     LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |     <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> | 
 |  |  |     <delete id="deleteLogicById" parameterType="java.lang.Long"> | 
 |  |  |         <!--@mbg.generated--> | 
 |  |  |         update pr_intake | 
 |  |  |         set deleted = 1 | 
 |  |  |         where id = #{id,jdbcType=BIGINT} | 
 |  |  |     </delete> | 
 |  |  |  | 
 |  |  |       <if test = "divideId != null and divideId !=''"> | 
 |  |  |         AND divi.id = #{divideId} | 
 |  |  |       </if> | 
 |  |  |     <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> | 
 |  |  |  | 
 |  |  |       <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, | 
 |  |  |     CAST(cont.id AS char)                               AS controllerId, | 
 |  |  |     cont.rtuAddr                                        AS rtuAddr, | 
 |  |  |     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 | 
 |  |  |     LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |     <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> | 
 |  |  |  | 
 |  |  |   <!--获取取水口数量(在线和不在先)--> | 
 |  |  |   <select id="getOnLineIntakesCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |         COUNT(*) AS recordCount | 
 |  |  |     FROM pr_controller con | 
 |  |  |         INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
 |  |  |         INNER JOIN JSON_TABLE( | 
 |  |  |     <!--根据指定条件获取取水口记录数--> | 
 |  |  |     <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 | 
 |  |  |         LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |         left JOIN JSON_TABLE( | 
 |  |  |         <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |         #{onLineMap}, | 
 |  |  |         '$[*]' COLUMNS( | 
 |  |  |         rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |         isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |         ) | 
 |  |  |         ) rtus ON cont.rtuAddr = rtus.rtuAddr | 
 |  |  |         <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> | 
 |  |  |             <if test = "rtuAddr != null and rtuAddr !=''"> | 
 |  |  |                 AND cont.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
 |  |  |             </if> | 
 |  |  |             <if test="isOnLine != null and isOnLine !='' "> | 
 |  |  |                 AND rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="protocol != null and protocol !='' "> | 
 |  |  |                 AND cont.protocol = #{protocol} | 
 |  |  |             </if> | 
 |  |  |             <if test = "bindNumber != null and bindNumber > 0"> | 
 |  |  |                 AND (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) = ${bindNumber} | 
 |  |  |             </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, | 
 |  |  |                CAST(cont.id AS char)                               AS controllerId, | 
 |  |  |                cont.rtuAddr                                        AS rtuAddr, | 
 |  |  |                 cont.protocol                                       AS protocol, | 
 |  |  |                 cont.findDt                                         AS findDt, | 
 |  |  |                 rtus.isOnLine                                       AS isOnLine, | 
 |  |  |                 (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) AS bindNumber, | 
 |  |  |                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 | 
 |  |  |                 LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |                 left JOIN JSON_TABLE( | 
 |  |  |                 <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |                 #{onLineMap}, | 
 |  |  |                 '$[*]' COLUMNS( | 
 |  |  |                 rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |                 isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |                 ) | 
 |  |  |                 ) rtus ON cont.rtuAddr = rtus.rtuAddr | 
 |  |  |         <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> | 
 |  |  |             <if test = "rtuAddr != null and rtuAddr !=''"> | 
 |  |  |                 AND cont.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
 |  |  |             </if> | 
 |  |  |             <if test="isOnLine != null and isOnLine !='' "> | 
 |  |  |                 AND rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="protocol != null and protocol !='' "> | 
 |  |  |                 AND cont.protocol = #{protocol} | 
 |  |  |             </if> | 
 |  |  |             <if test = "bindNumber != null and bindNumber > 0"> | 
 |  |  |                 AND (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) = ${bindNumber} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |         ORDER BY ge.operateDt DESC | 
 |  |  |         <trim prefix="limit "> | 
 |  |  |             <if test="start != null and count != null"> | 
 |  |  |                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |             </if> | 
 |  |  |         </trim> | 
 |  |  |     </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> | 
 |  |  |  | 
 |  |  |     <!--获取取水口数量(在线和不在先)--> | 
 |  |  |     <select id="getOnLineIntakesCount" resultType="java.lang.Long"> | 
 |  |  |         SELECT COUNT(*) AS recordCount | 
 |  |  |         FROM pr_intake inta | 
 |  |  |             LEFT JOIN pr_controller con ON con.intakeId = inta.id | 
 |  |  |             LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
 |  |  |             LEFT JOIN( | 
 |  |  |             SELECT intake_id AS intakeId, | 
 |  |  |                    CONCAT( | 
 |  |  |                            IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '流量计故障,', ''), | 
 |  |  |                               IF(alarm_water_meter_fault = 1, '流量计故障', '')), | 
 |  |  |                            IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '漏损(偷水)报警,', ''), | 
 |  |  |                               IF(alarm_loss = 1, '漏损(偷水)报警', '')), | 
 |  |  |                            IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '蓄电池电压报警,', ''), | 
 |  |  |                               IF(alarm_battery_volt = 1, '蓄电池电压报警', '')), | 
 |  |  |                            IF(alarm_valve = 1, '阀门报警', '') | 
 |  |  |                        )     AS alarm | 
 |  |  |             FROM rm_alarm_state_last | 
 |  |  |             WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) | 
 |  |  |               AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) | 
 |  |  |         ) alarm ON alarm.intakeId = inta.id | 
 |  |  |             LEFT JOIN JSON_TABLE( | 
 |  |  |         <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |         #{onLineMap}, | 
 |  |  |         '$[*]' COLUMNS ( | 
 |  |  |             rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |             isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |         ) | 
 |  |  |     ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |     <where> | 
 |  |  |       <if test="isOnLine != null"> | 
 |  |  |         rtus.isOnLine = #{isOnLine} | 
 |  |  |       </if> | 
 |  |  |       <if test="intakeNum != null and intakeNum != ''"> | 
 |  |  |         AND inta.name LIKE CONCAT('%', #{intakeNum}, '%') | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |             ) | 
 |  |  |             ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             <if test="isOnLine != null"> | 
 |  |  |                 rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="intakeNum != null and intakeNum != ''"> | 
 |  |  |                 AND inta.name = #{intakeNum} | 
 |  |  |             </if> | 
 |  |  |             <if test="isBinded == false"> | 
 |  |  |                 AND con.rtuAddr IS NULL | 
 |  |  |             </if> | 
 |  |  |             <if test="isBinded == true"> | 
 |  |  |                 AND con.rtuAddr IS NOT NULL | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |   <!--获取取水口列表(在线和不在先)--> | 
 |  |  |   <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
 |  |  |     SELECT | 
 |  |  |       con.intakeId, | 
 |  |  |       con.rtuAddr, | 
 |  |  |       inta.name AS intakeNum, | 
 |  |  |       rtus.isOnLine | 
 |  |  |     FROM pr_controller con | 
 |  |  |         INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
 |  |  |         INNER JOIN JSON_TABLE( | 
 |  |  |             <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |             #{onLineMap}, | 
 |  |  |             '$[*]' COLUMNS( | 
 |  |  |                 rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |               isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |            ) | 
 |  |  |         ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |     <where> | 
 |  |  |       <if test="isOnLine != null"> | 
 |  |  |         rtus.isOnLine = #{isOnLine} | 
 |  |  |       </if> | 
 |  |  |       <if test="intakeNum != null and intakeNum != ''"> | 
 |  |  |         AND inta.name LIKE CONCAT('%', #{intakeNum}, '%') | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |   </select> | 
 |  |  |     <!--获取取水口列表(在线和不在先)--> | 
 |  |  |     <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
 |  |  |         SELECT inta.id                     AS intakeId, | 
 |  |  |                con.rtuAddr, | 
 |  |  |                inta.name                   AS intakeNum, | 
 |  |  |                inta.lng, | 
 |  |  |                inta.lat, | 
 |  |  |                IFNULL(hou.total_amount, 0) AS totalAmount, | 
 |  |  |                (CASE | 
 |  |  |                     WHEN con.rtuAddr IS NULL THEN false | 
 |  |  |                     WHEN con.rtuAddr IS NOT NULL THEN true | 
 |  |  |                    END)                    AS isBinded, | 
 |  |  |                rtus.isOnLine, | 
 |  |  |                alarm.alarm | 
 |  |  |         FROM pr_intake inta | 
 |  |  |             LEFT JOIN pr_controller con ON con.intakeId = inta.id | 
 |  |  |             LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id | 
 |  |  |             LEFT JOIN( | 
 |  |  |             SELECT intake_id AS intakeId, | 
 |  |  |                    CONCAT( | 
 |  |  |                            IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '流量计故障,', ''), | 
 |  |  |                               IF(alarm_water_meter_fault = 1, '流量计故障', '')), | 
 |  |  |                            IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '漏损(偷水)报警,', ''), | 
 |  |  |                               IF(alarm_loss = 1, '漏损(偷水)报警', '')), | 
 |  |  |                            IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '蓄电池电压报警,', ''), | 
 |  |  |                               IF(alarm_battery_volt = 1, '蓄电池电压报警', '')), | 
 |  |  |                            IF(alarm_valve = 1, '阀门报警', '') | 
 |  |  |                        )     AS alarm | 
 |  |  |             FROM rm_alarm_state_last | 
 |  |  |             WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) | 
 |  |  |               AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) | 
 |  |  |         ) alarm ON alarm.intakeId = inta.id | 
 |  |  |             LEFT JOIN JSON_TABLE( | 
 |  |  |         <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |         #{onLineMap}, | 
 |  |  |         '$[*]' COLUMNS ( | 
 |  |  |             rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |             isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |             ) | 
 |  |  |             ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             <if test="isOnLine != null"> | 
 |  |  |                 rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="intakeNum != null and intakeNum != ''"> | 
 |  |  |                 AND inta.name = #{intakeNum} | 
 |  |  |             </if> | 
 |  |  |             <if test="isBinded == false"> | 
 |  |  |                 AND con.rtuAddr IS NULL | 
 |  |  |             </if> | 
 |  |  |             <if test="isBinded == true"> | 
 |  |  |                 AND con.rtuAddr IS NOT NULL | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |         order by con.id ASC | 
 |  |  |         <trim prefix="limit "> | 
 |  |  |             <if test="start != null and count != null"> | 
 |  |  |                 #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |             </if> | 
 |  |  |         </trim> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |   <!--根据操作员获取常用取水口--> | 
 |  |  |   <select id="getUsedIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
 |  |  |     SELECT | 
 |  |  |       DISTINCT con.intakeId, | 
 |  |  |     <!--根据取水口编号获取取水口对象--> | 
 |  |  |     <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
 |  |  |         SELECT con.intakeId, | 
 |  |  |                con.rtuAddr, | 
 |  |  |                inta.name AS intakeNum, | 
 |  |  |                rtus.isOnLine | 
 |  |  |     FROM pr_controller con | 
 |  |  |            INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
 |  |  |            INNER JOIN rm_command_history com ON con.rtuAddr = com.rtuAddr | 
 |  |  |            INNER JOIN JSON_TABLE( | 
 |  |  |             <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |             #{onLineMap}, | 
 |  |  |             '$[*]' COLUMNS( | 
 |  |  |                 rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |               isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |            ) | 
 |  |  |       ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |     <where> | 
 |  |  |       <if test="operator != null"> | 
 |  |  |         com.operator = #{operator} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |         FROM pr_controller con | 
 |  |  |                  INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
 |  |  |                  left JOIN JSON_TABLE( | 
 |  |  |                 #{onLineMap}, | 
 |  |  |                 '$[*]' COLUMNS ( | 
 |  |  |                     rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |                     isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |                     ) | 
 |  |  |             ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             <if test="intakeNum != null and intakeNum != ''"> | 
 |  |  |                 AND LOWER(inta.name) = #{intakeNum} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |         LIMIT 0,1 | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <!--根据操作员获取常用取水口--> | 
 |  |  |     <select id="getUsedIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
 |  |  |         SELECT DISTINCT con.intakeId, | 
 |  |  |                         con.rtuAddr, | 
 |  |  |                         inta.name AS intakeNum, | 
 |  |  |                         rtus.isOnLine | 
 |  |  |         FROM pr_controller con | 
 |  |  |             INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
 |  |  |             INNER JOIN rm_command_history com ON con.rtuAddr = com.rtu_addr | 
 |  |  |             INNER JOIN JSON_TABLE( | 
 |  |  |         <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
 |  |  |         #{onLineMap}, | 
 |  |  |         '$[*]' COLUMNS ( | 
 |  |  |             rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
 |  |  |             isOnLine BOOLEAN PATH '$.isOnLine' | 
 |  |  |             ) | 
 |  |  |             ) rtus ON con.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             <if test="operator != null"> | 
 |  |  |                 com.operator = #{operator} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <!--取水口名称换取水口ID,扫码开阀使用--> | 
 |  |  |     <select id="getIntakeIdByName" resultType="java.lang.Long"> | 
 |  |  |         SELECT id AS intakeId | 
 |  |  |         FROM pr_intake | 
 |  |  |         WHERE `name` = #{intakeName} | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <!--取水口名称换取水口ID,验证是否重复名称使用--> | 
 |  |  |     <select id="getIntakeIdsByName" resultType="java.lang.Long"> | 
 |  |  |         SELECT id AS intakeId | 
 |  |  |         FROM pr_intake | 
 |  |  |         WHERE `name` = #{intakeName} | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <!--取水口名称换取水口ID,验证是否重复名称使用--> | 
 |  |  |     <select id="getIntakeIdByNameExcludeId" resultType="java.lang.Long"> | 
 |  |  |         SELECT id AS intakeId | 
 |  |  |         FROM pr_intake | 
 |  |  |         WHERE id != #{id} | 
 |  |  |           and `name` = #{intakeName} | 
 |  |  |     </select> | 
 |  |  | </mapper> |