| <?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.PrControllerMapper"> | 
|   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrController"> | 
|     <!--@mbg.generated--> | 
|     <!--@Table pr_controller--> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="intakeId" jdbcType="BIGINT" property="intakeId" /> | 
|     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" /> | 
|     <result column="protocol" jdbcType="VARCHAR" property="protocol" /> | 
|     <result column="findDt" jdbcType="TIMESTAMP" property="findDt" /> | 
|     <result column="addWays" jdbcType="TINYINT" property="addWays" /> | 
|     <result column="operator" jdbcType="BIGINT" property="operator" /> | 
|     <result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" /> | 
|     <result column="deleted" jdbcType="TINYINT" property="deleted" /> | 
|   </resultMap> | 
|   <resultMap id="PartResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrController"> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="intakeId" jdbcType="BIGINT" property="intakeId" /> | 
|     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" /> | 
|   </resultMap> | 
|   | 
|   <sql id="Base_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, intakeId, rtuAddr, protocol, findDt, addWays, `operator`, operateDt, deleted | 
|   </sql> | 
|   <sql id="Part_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, rtuAddr, intakeId | 
|   </sql> | 
|   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|     <!--@mbg.generated--> | 
|     select | 
|     <include refid="Base_Column_List" /> | 
|     from pr_controller | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </select> | 
|   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     delete from pr_controller | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> | 
|     <!--@mbg.generated--> | 
|     insert into pr_controller (id, intakeId, rtuAddr, | 
|       protocol, findDt, addWays, | 
|       `operator`, operateDt, deleted | 
|       ) | 
|     values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, | 
|       #{protocol,jdbcType=VARCHAR}, #{findDt,jdbcType=TIMESTAMP}, #{addWays,jdbcType=TINYINT}, | 
|       #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT} | 
|       ) | 
|   </insert> | 
|   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> | 
|     <!--@mbg.generated--> | 
|     insert into pr_controller | 
|     <trim prefix="(" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         id, | 
|       </if> | 
|       <if test="intakeId != null"> | 
|         intakeId, | 
|       </if> | 
|       <if test="rtuAddr != null"> | 
|         rtuAddr, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         protocol, | 
|       </if> | 
|       <if test="findDt != null"> | 
|         findDt, | 
|       </if> | 
|       <if test="addWays != null"> | 
|         addWays, | 
|       </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="intakeId != null"> | 
|         #{intakeId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="rtuAddr != null"> | 
|         #{rtuAddr,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         #{protocol,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="findDt != null"> | 
|         #{findDt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="addWays != null"> | 
|         #{addWays,jdbcType=TINYINT}, | 
|       </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.PrController"> | 
|     <!--@mbg.generated--> | 
|     update pr_controller | 
|     <set> | 
|       <if test="intakeId != null"> | 
|         intakeId = #{intakeId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="rtuAddr != null"> | 
|         rtuAddr = #{rtuAddr,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         protocol = #{protocol,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="findDt != null"> | 
|         findDt = #{findDt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="addWays != null"> | 
|         addWays = #{addWays,jdbcType=TINYINT}, | 
|       </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.PrController"> | 
|     <!--@mbg.generated--> | 
|     update pr_controller | 
|     set intakeId = #{intakeId,jdbcType=BIGINT}, | 
|       rtuAddr = #{rtuAddr,jdbcType=VARCHAR}, | 
|       protocol = #{protocol,jdbcType=VARCHAR}, | 
|       findDt = #{findDt,jdbcType=TIMESTAMP}, | 
|       addWays = #{addWays,jdbcType=TINYINT}, | 
|       `operator` = #{operator,jdbcType=BIGINT}, | 
|       operateDt = #{operateDt,jdbcType=TIMESTAMP}, | 
|       deleted = #{deleted,jdbcType=TINYINT} | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   | 
|   <!--根据控制器编号删除取水口编号--> | 
|   <update id="deleteIntakeId"> | 
|     UPDATE pr_controller SET intakeId = null WHERE id = ${controllerId} | 
|   </update> | 
|   | 
|   <!--根据指定条件获取控制器记录数--> | 
|   <select id="getRecordCount" resultType="java.lang.Long"> | 
|     SELECT | 
|         COUNT(*) AS recordCount | 
|     FROM pr_controller con | 
|         INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id | 
|         INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|     <where> | 
|       AND ic.operateType = 1 | 
|       AND con.deleted = 0 | 
|   | 
|       <if test = "id != null and id > 0"> | 
|         AND con.id = ${id} | 
|       </if> | 
|   | 
|       <if test = "rtuAddr != null and rtuAddr !=''"> | 
|         AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
|       </if> | 
|   | 
|       <if test = "bindNumber != null and bindNumber > 0"> | 
|         AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   <!--根据指定条件获取控制器记录--> | 
|   <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController"> | 
|     SELECT | 
|         CAST(con.id AS char) AS id, | 
|         con.rtuAddr AS rtuAddr, | 
|         inta.name AS intakeName, | 
|         "在线" AS onlineState, | 
|         (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, | 
|         con.findDt AS findDt | 
|     FROM pr_controller con | 
|         INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id | 
|         INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|     <where> | 
|       AND ic.operateType = 1 | 
|       AND con.deleted = 0 | 
|   | 
|       <if test = "id != null and id > 0"> | 
|         AND con.id = ${id} | 
|       </if> | 
|   | 
|       <if test = "rtuAddr != null and rtuAddr !=''"> | 
|         AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
|       </if> | 
|   | 
|       <if test = "bindNumber != null and bindNumber > 0"> | 
|         AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} | 
|       </if> | 
|     </where> | 
|     ORDER BY con.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="getControllersByAddr" resultType="java.util.Map"> | 
|     SELECT id, rtuAddr FROM pr_controller WHERE deleted = 0 AND rtuAddr LIKE CONCAT('%',#{rtuAddr},'%') | 
|   </select> | 
|   | 
|   <!--根据控制器地址获取控制器列表--> | 
|   <select id="getControllersByRtuAddrAndIntakeNotNull" parameterType="java.lang.String" resultMap="PartResultMap"> | 
|     SELECT | 
|     <include refid="Part_Column_List"> | 
|     </include> | 
|     FROM pr_controller WHERE deleted = 0 AND intakeId is not null AND rtuAddr=#{rtuAddr,jdbcType=VARCHAR} | 
|   </select> | 
|   | 
|   <!--根据控制器编号逻辑删除控制--> | 
|   <update id="deleteControllerById"> | 
|     UPDATE pr_controller SET deleted = 1 WHERE id = ${controllerId} | 
|   </update> | 
|   | 
|   <!--根据控制器编号获取未删除的控制器数量--> | 
|   <select id="getRecordCountOfController" resultType="java.lang.Integer"> | 
|     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId} | 
|   </select> | 
|   | 
|   <!--根据控制器编号获取已绑定记录数--> | 
|   <select id="getBindedCount" resultType="java.lang.Integer"> | 
|     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL | 
|   </select> | 
| </mapper> |