From 4a2deb11b819dd78a8c75e244ef67ec2e48cf5f5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 21:03:28 +0800
Subject: [PATCH] 重构轮灌组修改接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml |  360 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 211 insertions(+), 149 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 d273a11..e580bd8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -34,13 +34,33 @@
         operateDt,
         deleted
     </sql>
-    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake">
         <!--@mbg.generated-->
         select
-        <include refid="Base_Column_List"/>
-        from pr_intake
-        where id = #{id,jdbcType=BIGINT}
-        and deleted = 0
+        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">
@@ -50,12 +70,33 @@
         where id = #{id,jdbcType=BIGINT}
     </delete>
 
-    <select id="selectAll" resultMap="BaseResultMap">
+    <select id="selectAll"  resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake">
         <!--@mbg.generated-->
         select
-        <include refid="Base_Column_List"/>
-        from pr_intake
-        where deleted != 1
+        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-->
@@ -231,14 +272,9 @@
         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
+        <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
@@ -255,10 +291,10 @@
                 AND blo.id = #{blockId}
             </if>
 
-            <if test="isBinded == 0">
+            <if test="isBinded != null and isBinded == 0">
                 AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0)
             </if>
-            <if test="isBinded == 1">
+            <if test="isBinded != null and isBinded == 1">
                 AND ge.id IN (SELECT intakeId FROM pr_controller where deleted = 0)
             </if>
             <if test="isBinded == null">
@@ -269,21 +305,20 @@
             <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}
+                AND bindNumTb.num = #{bindNumber}
             </if>
         </where>
     </select>
 
     <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
     <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake">
-        SELECT CAST(ge.id AS char)                                 AS intakeId,
+        WITH intakeIds AS(SELECT intakeId FROM pr_controller where deleted = 0)
+
+        SELECT CAST(ge.id AS char)                          AS intakeId,
         ge.`name`                                           AS intakeName,
         CAST(divi.id AS char)                               AS divideId,
         divi.`name`                                         AS divideName,
@@ -293,18 +328,14 @@
         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,
+        bindNumTb.num                                       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
+        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
@@ -312,14 +343,7 @@
         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
+        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
@@ -327,19 +351,16 @@
             <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">
+            <if test="isBinded != null and isBinded == 0">
                 AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0)
             </if>
-            <if test="isBinded == 1">
+            <if test="isBinded != null and isBinded == 1">
                 AND ge.id IN (SELECT intakeId FROM pr_controller where deleted = 0)
             </if>
             <if test="isBinded == null">
@@ -347,17 +368,14 @@
             <if test="address != null and address != ''">
                 AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
             </if>
-            <if test = "rtuAddr != null and rtuAddr !=''">
+            <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 test="bindNumber != null and bindNumber > 0">
+                AND bindNumTb.num = #{bindNumber}
             </if>
         </where>
         ORDER BY ge.operateDt DESC
@@ -384,6 +402,13 @@
         FROM pr_intake
         WHERE deleted = 0
         AND id = #{intakeId}
+    </select>
+
+    <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
+    <select id="getNameById" resultType="java.lang.String">
+        select name
+        from pr_intake
+        where id = #{intakeId, jdbcType=BIGINT}
     </select>
 
     <!--鏍规嵁鏉慖D鑾峰彇鍏ㄩ儴鍦板潃-->
@@ -461,44 +486,45 @@
 
     <!--鑾峰彇鍙栨按鍙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
+        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
+            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}
@@ -534,12 +560,12 @@
         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'
-            )
+                <!--'[{"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
@@ -570,34 +596,37 @@
         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.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
-        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)
+            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'
-            )
+                <!--'[{"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
@@ -625,31 +654,14 @@
         </trim>
     </select>
 
-
-
-
-
-
-
-
-
-
-
     <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
     <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
-        SELECT con.intakeId,
-        con.rtuAddr,
-        inta.name AS intakeNum,
-        rtus.isOnLine
+        SELECT
+            con.intakeId,
+            con.rtuAddr,
+            inta.name AS intakeNum
         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
+            INNER JOIN pr_intake inta ON con.intakeId = inta.id
         <where>
             <if test="intakeNum != null and intakeNum != ''">
                 AND LOWER(inta.name) = #{intakeNum}
@@ -660,26 +672,28 @@
 
     <!--鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛-->
     <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
+        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="operator != null">
-                com.operator = #{operator}
+            <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锛屾壂鐮佸紑闃�浣跨敤-->
@@ -703,4 +717,52 @@
         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>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0