From bb5c0ca59fd23ca6c4b8184023d8707d9d506826 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 25 四月 2025 10:56:37 +0800
Subject: [PATCH] 修改bug

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 1085 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 768 insertions(+), 317 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 8bc0254..1d8abba 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -1,350 +1,801 @@
 <?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">
+        deleted
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake">
+        <!--@mbg.generated-->
+        select
+        ge.id,
+        ge.countyId,
+        ge.townId,
+        ge.villageId,
+        ge.divideId,
+        ge.blockId,
+        ge.`name`,
+        ge.lng,
+        ge.lat,
+        ge.remarks,
+        ge.`operator`,
+        ge.operateDt,
+        blo.`name`                                          AS blockName,
+        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.id = #{id,jdbcType=BIGINT}
+        AND ge.deleted = 0
+        AND divi.deleted = 0
+        AND blo.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"  resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake">
+        <!--@mbg.generated-->
+        select
+        ge.id,
+        ge.countyId,
+        ge.townId,
+        ge.villageId,
+        ge.divideId,
+        ge.blockId,
+        ge.`name`,
+        ge.lng,
+        ge.lat,
+        ge.remarks,
+        ge.`operator`,
+        ge.operateDt,
+        blo.`name`                                          AS blockName,
+        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
+    </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},
-      </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>
+        operateDt  = #{operateDt,jdbcType=TIMESTAMP},
+        deleted    = #{deleted,jdbcType=TINYINT}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟-->
-  <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
-    INNER JOIN ba_district country ON ge.countyId = country.id
-    INNER JOIN ba_district town ON ge.townId = town.id
-    INNER 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>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟-->
+    <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
+        <if test = "bindNumber != null and bindNumber > 0">
+            LEFT JOIN (SELECT intakeId, COUNT(*) num FROM pr_intake_controller WHERE operateType = 1 group by intakeId) AS bindNumTb on bindNumTb.intakeId= ge.id
+        </if>
+        <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="divideName != null and divideName != ''">
-        AND divi.name LIKE CONCAT('%', #{divideName}, '%')
-      </if>
+            <if test="divideId != null and divideId != ''">
+                AND divi.id = #{divideId}
+            </if>
 
-      <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
-      </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 test="isBinded != null and isBinded == 0">
+                AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0)
+            </if>
+            <if test="isBinded != null and 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="protocol != null and protocol !='' ">
+                AND cont.protocol = #{protocol}
+            </if>
+            <if test = "bindNumber != null and bindNumber > 0">
+                AND bindNumTb.num = #{bindNumber}
+            </if>
+        </where>
+    </select>
 
-      </if>
-      <if test="address != null and address != ''">
-        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
-      </if>
-    </where>
-  </select>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
+    <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake">
+        WITH intakeIds AS(SELECT intakeId FROM pr_controller where deleted = 0)
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
-  <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake">
-    SELECT CAST(ge.id AS char)                             AS id,
-    ge.`name`                                           AS intakeName,
-    divi.`name`                                         AS divideName,
-    blo.`name`                                          AS blockName,
-    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>
+        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,
+        bindNumTb.num                                       AS bindNumber,
+        ge.lng,
+        ge.lat,
+        ge.remarks,
+        ge.operator,
+        ge.operateDt                                        As operateDt,
+        IF(ge.id IN (SELECT intakeId FROM intakeIds),'宸茬粦瀹�','鏈粦瀹�')    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 (SELECT intakeId, COUNT(*) num FROM pr_intake_controller WHERE operateType = 1 group by intakeId) AS bindNumTb on bindNumTb.intakeId= ge.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 != null and isBinded == 0">
+                AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0)
+            </if>
+            <if test="isBinded != null and 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="protocol != null and protocol !='' ">
+                AND cont.protocol = #{protocol}
+            </if>
+            <if test="bindNumber != null and bindNumber > 0">
+                AND bindNumTb.num = #{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>
 
-      <if test="divideName != null and divideName != ''">
-        AND divi.name LIKE CONCAT('%', #{divideName}, '%')
-      </if>
+    <!--鏍规嵁涓嬬骇鑾峰彇涓婁竴绾у湴鍧�-->
+    <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>
 
-      <if test="blockName != null and blockName != ''">
-        AND blo.name = #{blockName}
-      </if>
+    <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
+    <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake
+        WHERE deleted = 0
+        AND id = #{intakeId}
+    </select>
 
-      <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">
+    <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
+    <select id="getNameById" resultType="java.lang.String">
+        select name
+        from pr_intake
+        where id = #{intakeId, jdbcType=BIGINT}
+    </select>
 
-      </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>
+    <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
+    <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>
 
-  <!--鏍规嵁涓嬬骇鑾峰彇涓婁竴绾у湴鍧�-->
-  <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>
+    <!--鏍规嵁鍖哄煙Id鑾峰彇鍖哄煙绛夌骇-->
+    <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
+        select region.level
+        from ba_district region
+        where region.id = #{regionId,jdbcType=BIGINT}
+    </select>
 
-  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
-  <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
-    SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
-  </select>
+    <!--鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙e垪琛�-->
+    <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>
 
-  <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
-  <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>
+    <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
+    <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 = #{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>
 
-  <!--鏍规嵁鍖哄煙Id鑾峰彇鍖哄煙绛夌骇-->
-  <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
-    select
-    region.level
-    from ba_district region
-    where region.id = #{regionId,jdbcType=BIGINT}
-  </select>
+    <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
+    <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>
 
-  <!--鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙e垪琛�-->
-  <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>
+
+
+
+
+
+
+    <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+    <select id="selectIntakesCountForOnLine" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+        INNER JOIN pr_controller con ON con.intakeId = inta.id
+        <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+            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
+        </if>
+        WHERE con.intakeId is not null
+        <if test="isOnLine != null and isOnLine == false">
+            <choose>
+                <when test="onLineMap != null and onLineMap !=''">
+                    AND (rtus.isOnLine = false OR rtus.rtuAddr IS NULL)
+                </when>
+                <otherwise>
+                    AND rtus.rtuAddr IS NULL
+                </otherwise>
+            </choose>
+        </if>
+        <if test="isOnLine != null and isOnLine == true">
+            AND rtus.isOnLine = true
+        </if>
+        <if test="intakeNum != null and intakeNum != ''">
+            AND inta.name = #{intakeNum}
+        </if>
+    </select>
+
+
+    <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+    <select id="selectIntakesForOnLine" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+        SELECT
+        inta.id                     AS intakeId,
+        con.rtuAddr,
+        inta.name                   AS intakeNum,
+        inta.lng,
+        inta.lat,
+        IFNULL(hou.instant_amount, 0) AS instantAmount,
+        IFNULL(hou.total_amount, 0) AS totalAmount,
+        <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+            rtus.isOnLine,
+        </if>
+        alarm.alarm,
+        alarm.alarmDt
+        FROM pr_intake inta
+        INNER 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_battery_volt = 1, '鐢垫睜鐢靛帇鎶ヨ锛�', ''),
+                IF(alarm_valve = 1, '闃�闂ㄦ姤璀︼紝', ''),
+                IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅滄姤璀︼紝', '')
+            ) AS alarm,
+            dt AS alarmDt
+            FROM rm_alarm_state_last
+            WHERE (alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1 OR alarm_water_meter_fault = 1)
+            AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+        ) alarm ON alarm.intakeId = inta.id
+        <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+            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
+        </if>
+        WHERE con.intakeId is not null
+        <if test="isOnLine != null and isOnLine == false">
+            <choose>
+                <when test="onLineMap != null and onLineMap !=''">
+                    AND (rtus.isOnLine = false OR rtus.rtuAddr IS NULL)
+                </when>
+                <otherwise>
+                    AND rtus.rtuAddr IS NULL
+                </otherwise>
+            </choose>
+        </if>
+        <if test="isOnLine != null and isOnLine == true">
+            AND rtus.isOnLine = true
+        </if>
+        <if test="intakeNum != null and intakeNum != ''">
+            AND inta.name = #{intakeNum}
+        </if>
+        order by inta.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>
+
+    <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
+    <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+        SELECT
+            con.intakeId,
+            con.rtuAddr,
+            inta.name AS intakeNum
+        FROM pr_controller con
+            INNER JOIN pr_intake inta ON con.intakeId = inta.id
+        <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
+            com.intake_id AS intakeId,
+            con.rtuAddr,
+            inta.name AS intakeNum,
+            rtus.isOnLine
+        FROM pr_common_intakes com
+            INNER JOIN pr_intake inta ON inta.id = com.intake_id
+            INNER JOIN pr_controller con ON con.intakeId = com.intake_id
+            LEFT JOIN JSON_TABLE(
+                <!--'[{"rtuAddr":"530115059980","isOnLine":true},{"rtuAddr":"620201000030","isOnLine":true}]',-->
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                )
+            ) rtus ON con.rtuAddr = rtus.rtuAddr
+        <where>
+            <if test="operatorId != null">
+                AND com.operator_id = #{operatorId}
+            </if>
+        </where>
+        ORDER BY com.last_used_time DESC,com.usage_count DESC
+    </select>
+
+    <!--鍙栨按鍙e悕绉版崲鍙栨按鍙D锛屾壂鐮佸紑闃�浣跨敤-->
+    <select id="getIntakeIdByName" resultType="java.lang.Long">
+        SELECT id AS intakeId
+        FROM pr_intake
+        WHERE `name` = #{intakeName}
+    </select>
+
+    <!--鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢�-->
+    <select id="getIntakeIdsByName" resultType="java.lang.Long">
+        SELECT id AS intakeId
+        FROM pr_intake
+        WHERE `name` = #{intakeName}
+    </select>
+
+    <!--鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢�-->
+    <select id="getIntakeIdByNameExcludeId" resultType="java.lang.Long">
+        SELECT id AS intakeId
+        FROM pr_intake
+        WHERE id != #{id}
+        and `name` = #{intakeName}
+    </select>
+    <!--app淇敼鍙栨按鍙g粡绾害-->
+    <update id="updateByPrimaryKeySelective1" parameterType="com.dy.pipIrrGlobal.voPr.IntakeUpdateLngLat">
+        <!--@mbg.generated-->
+        update pr_intake
+        <set>
+            <if test="lng != null">
+                lng = #{lng,jdbcType=DOUBLE},
+            </if>
+            <if test="lat != null">
+                lat = #{lat,jdbcType=DOUBLE},
+            </if>
+            <if test="operator != null">
+                `operator` = #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                operateDt = #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--鑾峰彇鏈粦瀹氬埌杞亴缁勭殑鍙栨按鍙e垪琛�-->
+    <select id="getFreeIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntakeSimple">
+        SELECT
+            id AS intakeId,
+            name AS intakeName
+        FROM pr_intake inta
+        <where>
+            AND inta.deleted = 0
+            AND NOT EXISTS (SELECT 1 FROM ir_group_intake gi WHERE gi.intake_id = inta.id)
+            <if test="intakeName != null and intakeName != ''">
+                AND LOWER(inta.name) LIKE CONCAT('%', #{intakeName}, '%')
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇鏈粦瀹氳櫄鎷熷崱鐨勫彇姘村彛鍒楄〃锛岀粰鍙栨按鍙g粦铏氭嫙鍗′娇鐢�-->
+    <select id="getNotLinkVcIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntakeSimple">
+        SELECT
+            id AS intakeId,
+            name AS intakeName
+        FROM pr_intake inta
+        WHERE NOT EXISTS (
+                SELECT 1
+                FROM pr_intake_vc iv
+                WHERE iv.intake_id = inta.id
+            ) AND inta.deleted = 0
+    </select>
+
+
+
+    <!-- 涓簑echat,鏍规嵁鎸囧畾鍙栨按鍙e悕绉版ā绯婏紙鍚庣锛夋煡璇㈡按鍙h褰曟暟 -->
+    <select id="getSomeIntakesCount4Wx" parameterType="java.util.Map" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake tb
+        <where>
+            tb.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND tb.name LIKE CONCAT('%', #{intakeNum})
+            </if>
+        </where>
+    </select>
+
+    <!-- 涓簑echat,鏍规嵁鎸囧畾鍙栨按鍙e悕绉版ā绯婏紙鍚庣锛夋煡璇㈡按鍙h褰� -->
+    <select id="getSomeIntakes4Wx" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+        SELECT
+        inta.id AS intakeId,
+        con.rtuAddr,
+        inta.name AS intakeNum
+        FROM pr_intake inta
+        INNER JOIN pr_controller con ON con.intakeId = inta.id
+        <where>
+            inta.deleted = 0
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name LIKE CONCAT('%', #{intakeNum})
+            </if>
+        </where>
+        ORDER BY inta.id DESC
+    </select>
+
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0