From e84b3255aa6888aca2695e1b8e5ccc6236d60919 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期一, 05 八月 2024 15:01:11 +0800
Subject: [PATCH] 2024-08-05 朱宝民 获取不同信号强度取水口、全部取水口返回值增加累计流量

---
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/SignalIntensityQO.java |   30 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java            |   43 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java             |   33 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java                     |   15 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml                                    |  714 ++++++++++++----------
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java                                |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                 |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoSignalIntensity.java                             |   27 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                              |  986 +++++++++++++++---------------
 9 files changed, 1,030 insertions(+), 831 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
index 5a09bb7..d4604e2 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -5,6 +5,7 @@
 import com.dy.pipIrrGlobal.voRm.VoOnHour;
 import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
 import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
+import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -123,4 +124,18 @@
      * @return
      */
     List<VoBatteryVolt> getUnderVoltIntakes(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇鎸囧畾淇″彿寮哄害鐨勫彇姘村彛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getSpecifiedSignalIntakesCount(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇鎸囧畾淇″彿寮哄害鐨勫彇姘村彛
+     * @param params
+     * @return
+     */
+    List<VoSignalIntensity> getSpecifiedSignalIntakes(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
index 88d93e0..015acd2 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
@@ -40,6 +40,11 @@
     private Double lat;
 
     /**
+     * 绱娴侀噺
+     */
+    private Double totalAmount;
+
+    /**
      * 鏄惁鍦ㄧ嚎
      */
     private Boolean isOnLine;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoSignalIntensity.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoSignalIntensity.java
new file mode 100644
index 0000000..323a49f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoSignalIntensity.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-05 8:39
+ * @LastEditTime 2024-08-05 8:39
+ * @Description 淇″彿寮哄害瑙嗗浘
+ */
+
+@Data
+public class VoSignalIntensity extends VoIntake {
+    /**
+     * 淇″彿寮哄害
+     */
+    private Integer signValue;
+
+    /**
+     * 鏁版嵁鑾峰彇鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date getDate;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 1e01f5b..1c09121 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
 
 pipIrr:
     global:
-        dev: false   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+        dev: flase   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     mw:
         webPort: 8070
@@ -179,4 +179,8 @@
 
 #闃�鎺у櫒鍙傛暟
 rtu:
-    batteryVolt: 17
\ No newline at end of file
+    batteryVolt: 17
+    signalIntensity:
+        weak: 10
+        ordinary: 20
+#        strong: 20
\ No newline at end of file
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 8cc3a20..60412c5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -1,528 +1,548 @@
 <?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>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙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
-    <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>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙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
+        <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="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="divideId != null and divideId != ''">
+                AND divi.id = #{divideId}
+            </if>
 
-      </if>
-      <if test="address != null and address != ''">
-        AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
-      </if>
-    </where>
-  </select>
+            <if test="blockId != null and blockId != ''">
+                AND blo.id = #{blockId}
+            </if>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
-  <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="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>
 
-      <if test = "divideId != null and divideId !=''">
-        AND divi.id = #{divideId}
-      </if>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�-->
+    <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 = "blockId != null and blockId !=''">
-        AND blo.id = #{blockId}
-      </if>
+            <if test="divideId != null and divideId != ''">
+                AND divi.id = #{divideId}
+            </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="blockId != null and blockId != ''">
+                AND blo.id = #{blockId}
+            </if>
 
-      </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>
+            <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
+        <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="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>
 
-  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
-  <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
-    SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
-  </select>
+    <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
+    <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake
+        WHERE deleted = 0
+          AND id = #{intakeId}
+    </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>
+    <!--鏍规嵁鏉慖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>
 
-  <!--鏍规嵁鍖哄煙Id鑾峰彇鍖哄煙绛夌骇-->
-  <select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
-    select
-    region.level
-    from ba_district region
-    where region.id = #{regionId,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>
 
-  <!--鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙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>
+    <!--鑾峰彇鏈粦鎺у埗鍣ㄧ殑鍙栨按鍙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="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(
-            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
+    <!--鑾峰彇鍙栨按鍙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)
+              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>
-
-  <!--鑾峰彇鍙栨按鍙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,
-        (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(
-            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
-    <if test="pageCurr != null and pageSize != null">
-      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
-    </if>
-  </select>
-
-  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
-  <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
-      left JOIN JSON_TABLE(
+            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="intakeNum != null and intakeNum != ''">
-        AND LOWER(inta.name) = #{intakeNum}
-      </if>
-    </where>
-    LIMIT 0,1
+        '$[*]' 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>
 
-  </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>
 
-  <!--鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛-->
-  <select id="getUsedIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
-    SELECT
-      DISTINCT con.intakeId,
+    <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
+    <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.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>
+        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>
 
-  <!--鍙栨按鍙e悕绉版崲鍙栨按鍙D锛屾壂鐮佸紑闃�浣跨敤-->
-  <select id="getIntakeIdByName" resultType="java.lang.Long">
-    SELECT id AS intakeId FROM pr_intake WHERE `name` = #{intakeName}
-  </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>
 
-  <!--鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢�-->
-  <select id="getIntakeIdsByName" resultType="java.lang.Long">
-    SELECT id AS intakeId FROM pr_intake WHERE `name` = #{intakeName}
-  </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="getIntakeIdByNameExcludeId" resultType="java.lang.Long">
-    SELECT id AS intakeId FROM pr_intake WHERE id != #{id} and `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>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
index 8ce03ba..29f966b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
@@ -1,356 +1,420 @@
 <?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.daoRm.RmOnHourReportLastMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
-    <!--@mbg.generated-->
-    <!--@Table rm_on_hour_report_last-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
-    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
-    <result column="instant_amount" jdbcType="FLOAT" property="instantAmount" />
-    <result column="total_amount" jdbcType="FLOAT" property="totalAmount" />
-    <result column="loss_amount" jdbcType="FLOAT" property="lossAmount" />
-    <result column="water_press" jdbcType="FLOAT" property="waterPress" />
-    <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt" />
-    <result column="signal_value" jdbcType="INTEGER" property="signalValue" />
-    <result column="water_price" jdbcType="FLOAT" property="waterPrice" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, instant_amount, total_amount, 
-    loss_amount, water_press, battery_volt, signal_value, water_price
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_on_hour_report_last
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_on_hour_report_last
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
-    <!--@mbg.generated-->
-    insert into rm_on_hour_report_last (id, controller_id, intake_id, 
-      rtu_addr, dt, rtu_dt, 
-      instant_amount, total_amount, loss_amount, 
-      water_press, battery_volt,
-      signal_value, water_price)
-    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
-      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
-      #{instantAmount,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, #{lossAmount,jdbcType=FLOAT}, 
-      #{waterPress,jdbcType=FLOAT}, #{batteryVolt,jdbcType=FLOAT},
-      #{signalValue,jdbcType=INTEGER}, #{waterPrice,jdbcType=FLOAT})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
-    <!--@mbg.generated-->
-    insert into rm_on_hour_report_last
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
+        <!--@mbg.generated-->
+        <!--@Table rm_on_hour_report_last-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="controller_id" jdbcType="BIGINT" property="controllerId"/>
+        <result column="intake_id" jdbcType="BIGINT" property="intakeId"/>
+        <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr"/>
+        <result column="dt" jdbcType="TIMESTAMP" property="dt"/>
+        <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt"/>
+        <result column="instant_amount" jdbcType="FLOAT" property="instantAmount"/>
+        <result column="total_amount" jdbcType="FLOAT" property="totalAmount"/>
+        <result column="loss_amount" jdbcType="FLOAT" property="lossAmount"/>
+        <result column="water_press" jdbcType="FLOAT" property="waterPress"/>
+        <result column="battery_volt" jdbcType="FLOAT" property="batteryVolt"/>
+        <result column="signal_value" jdbcType="INTEGER" property="signalValue"/>
+        <result column="water_price" jdbcType="FLOAT" property="waterPrice"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
         id,
-      </if>
-      <if test="controllerId != null">
         controller_id,
-      </if>
-      <if test="intakeId != null">
         intake_id,
-      </if>
-      <if test="rtuAddr != null">
         rtu_addr,
-      </if>
-      <if test="dt != null">
         dt,
-      </if>
-      <if test="rtuDt != null">
         rtu_dt,
-      </if>
-      <if test="instantAmount != null">
         instant_amount,
-      </if>
-      <if test="totalAmount != null">
         total_amount,
-      </if>
-      <if test="lossAmount != null">
         loss_amount,
-      </if>
-      <if test="waterPress != null">
         water_press,
-      </if>
-      <if test="batteryVolt != null">
         battery_volt,
-      </if>
-      <if test="signalValue != null">
         signal_value,
-      </if>
-      <if test="waterPrice != null">
-        water_price,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtuDt != null">
-        #{rtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantAmount != null">
-        #{instantAmount,jdbcType=FLOAT},
-      </if>
-      <if test="totalAmount != null">
-        #{totalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="lossAmount != null">
-        #{lossAmount,jdbcType=FLOAT},
-      </if>
-      <if test="waterPress != null">
-        #{waterPress,jdbcType=FLOAT},
-      </if>
-      <if test="batteryVolt != null">
-        #{batteryVolt,jdbcType=FLOAT},
-      </if>
-      <if test="signalValue != null">
-        #{signalValue,jdbcType=INTEGER},
-      </if>
-      <if test="waterPrice != null">
-        #{waterPrice,jdbcType=FLOAT},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
-    <!--@mbg.generated-->
-    update rm_on_hour_report_last
-    <set>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtuDt != null">
-        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="instantAmount != null">
-        instant_amount = #{instantAmount,jdbcType=FLOAT},
-      </if>
-      <if test="totalAmount != null">
-        total_amount = #{totalAmount,jdbcType=FLOAT},
-      </if>
-      <if test="lossAmount != null">
-        loss_amount = #{lossAmount,jdbcType=FLOAT},
-      </if>
-      <if test="waterPress != null">
-        water_press = #{waterPress,jdbcType=FLOAT},
-      </if>
-      <if test="batteryVolt != null">
-        battery_volt = #{batteryVolt,jdbcType=FLOAT},
-      </if>
-      <if test="signalValue != null">
-        signal_value = #{signalValue,jdbcType=INTEGER},
-      </if>
-      <if test="waterPrice != null">
-        water_price = #{waterPrice,jdbcType=FLOAT},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
-    <!--@mbg.generated-->
-    update rm_on_hour_report_last
-    set controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=TIMESTAMP},
-      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
-      instant_amount = #{instantAmount,jdbcType=FLOAT},
-      total_amount = #{totalAmount,jdbcType=FLOAT},
-      loss_amount = #{lossAmount,jdbcType=FLOAT},
-      water_press = #{waterPress,jdbcType=FLOAT},
-      battery_volt = #{batteryVolt,jdbcType=FLOAT},
-      signal_value = #{signalValue,jdbcType=INTEGER},
-      water_price = #{waterPrice,jdbcType=FLOAT}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
+        water_price
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from rm_on_hour_report_last
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from rm_on_hour_report_last
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
+        <!--@mbg.generated-->
+        insert into rm_on_hour_report_last (id, controller_id, intake_id,
+                                            rtu_addr, dt, rtu_dt,
+                                            instant_amount, total_amount, loss_amount,
+                                            water_press, battery_volt,
+                                            signal_value, water_price)
+        values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT},
+                #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP},
+                #{instantAmount,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, #{lossAmount,jdbcType=FLOAT},
+                #{waterPress,jdbcType=FLOAT}, #{batteryVolt,jdbcType=FLOAT},
+                #{signalValue,jdbcType=INTEGER}, #{waterPrice,jdbcType=FLOAT})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
+        <!--@mbg.generated-->
+        insert into rm_on_hour_report_last
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="controllerId != null">
+                controller_id,
+            </if>
+            <if test="intakeId != null">
+                intake_id,
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr,
+            </if>
+            <if test="dt != null">
+                dt,
+            </if>
+            <if test="rtuDt != null">
+                rtu_dt,
+            </if>
+            <if test="instantAmount != null">
+                instant_amount,
+            </if>
+            <if test="totalAmount != null">
+                total_amount,
+            </if>
+            <if test="lossAmount != null">
+                loss_amount,
+            </if>
+            <if test="waterPress != null">
+                water_press,
+            </if>
+            <if test="batteryVolt != null">
+                battery_volt,
+            </if>
+            <if test="signalValue != null">
+                signal_value,
+            </if>
+            <if test="waterPrice != null">
+                water_price,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="controllerId != null">
+                #{controllerId,jdbcType=BIGINT},
+            </if>
+            <if test="intakeId != null">
+                #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="dt != null">
+                #{dt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="rtuDt != null">
+                #{rtuDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="instantAmount != null">
+                #{instantAmount,jdbcType=FLOAT},
+            </if>
+            <if test="totalAmount != null">
+                #{totalAmount,jdbcType=FLOAT},
+            </if>
+            <if test="lossAmount != null">
+                #{lossAmount,jdbcType=FLOAT},
+            </if>
+            <if test="waterPress != null">
+                #{waterPress,jdbcType=FLOAT},
+            </if>
+            <if test="batteryVolt != null">
+                #{batteryVolt,jdbcType=FLOAT},
+            </if>
+            <if test="signalValue != null">
+                #{signalValue,jdbcType=INTEGER},
+            </if>
+            <if test="waterPrice != null">
+                #{waterPrice,jdbcType=FLOAT},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
+        <!--@mbg.generated-->
+        update rm_on_hour_report_last
+        <set>
+            <if test="controllerId != null">
+                controller_id = #{controllerId,jdbcType=BIGINT},
+            </if>
+            <if test="intakeId != null">
+                intake_id = #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="dt != null">
+                dt = #{dt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="rtuDt != null">
+                rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="instantAmount != null">
+                instant_amount = #{instantAmount,jdbcType=FLOAT},
+            </if>
+            <if test="totalAmount != null">
+                total_amount = #{totalAmount,jdbcType=FLOAT},
+            </if>
+            <if test="lossAmount != null">
+                loss_amount = #{lossAmount,jdbcType=FLOAT},
+            </if>
+            <if test="waterPress != null">
+                water_press = #{waterPress,jdbcType=FLOAT},
+            </if>
+            <if test="batteryVolt != null">
+                battery_volt = #{batteryVolt,jdbcType=FLOAT},
+            </if>
+            <if test="signalValue != null">
+                signal_value = #{signalValue,jdbcType=INTEGER},
+            </if>
+            <if test="waterPrice != null">
+                water_price = #{waterPrice,jdbcType=FLOAT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
+        <!--@mbg.generated-->
+        update rm_on_hour_report_last
+        set controller_id  = #{controllerId,jdbcType=BIGINT},
+            intake_id      = #{intakeId,jdbcType=BIGINT},
+            rtu_addr       = #{rtuAddr,jdbcType=VARCHAR},
+            dt             = #{dt,jdbcType=TIMESTAMP},
+            rtu_dt         = #{rtuDt,jdbcType=TIMESTAMP},
+            instant_amount = #{instantAmount,jdbcType=FLOAT},
+            total_amount   = #{totalAmount,jdbcType=FLOAT},
+            loss_amount    = #{lossAmount,jdbcType=FLOAT},
+            water_press    = #{waterPress,jdbcType=FLOAT},
+            battery_volt   = #{batteryVolt,jdbcType=FLOAT},
+            signal_value   = #{signalValue,jdbcType=INTEGER},
+            water_price    = #{waterPrice,jdbcType=FLOAT}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
 
     <!--鏍规嵁闃�鎺у櫒鍦板潃鑾峰彇瀹氱偣涓婃姤鏈�鏂版暟鎹�-->
     <select id="getRmOnHourReportLast" resultType="com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast">
         select
-        <include refid="Base_Column_List" />
+        <include refid="Base_Column_List"/>
         from rm_on_hour_report_last
         where intake_id = #{intakeId}
     </select>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ユ渶鏂拌褰曟暟閲�-->
-  <select id="getOnHourReportsCount_last" resultType="java.lang.Long">
-    SELECT
-        COUNT(*) AS recordCount
-    FROM rm_on_hour_report_last oh
-    INNER JOIN pr_intake inta ON inta.id = oh.intake_id
-    <where>
-      <if test="intakeId != null and intakeId >0">
-        AND oh.intake_id = #{intakeId}
-      </if>
-      <if test = "intakeNum != null and intakeNum !=''">
-        AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
-      </if>
-      <if test = "rtuAddr != null and rtuAddr !=''">
-        AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
-      </if>
-      <if test = "timeStart != null and timeStop != null">
-        AND oh.dt BETWEEN #{timeStart} AND #{timeStop}
-      </if>
-    </where>
-  </select>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ユ渶鏂拌褰曟暟閲�-->
+    <select id="getOnHourReportsCount_last" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM rm_on_hour_report_last oh
+                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
+        <where>
+            <if test="intakeId != null and intakeId > 0">
+                AND oh.intake_id = #{intakeId}
+            </if>
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
+            </if>
+            <if test="rtuAddr != null and rtuAddr != ''">
+                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
+            </if>
+            <if test="timeStart != null and timeStop != null">
+                AND oh.dt BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+    </select>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ユ渶鏂拌褰�-->
-  <select id="getOnHourReports_last" resultType="com.dy.pipIrrGlobal.voRm.VoOnHour">
-    SELECT
-      oh.intake_id AS intakeId,
-      inta.`name` AS intakeNum,
-      oh.rtu_addr AS rtuAddr,
-      oh.dt AS receiveTime,
-      oh.instant_amount AS instantAmount,
-      oh.total_amount AS totalAmount,
-      oh.loss_amount AS lossAmount,
-      oh.water_press AS waterPress,
-      oh.battery_volt AS batteryVolt,
-      oh.signal_value AS signalValue,
-      oh.water_price AS waterPrice
-    FROM rm_on_hour_report_last oh
-    INNER JOIN pr_intake inta ON inta.id = oh.intake_id
-    <where>
-      <if test="intakeId != null and intakeId >0">
-        AND oh.intake_id = #{intakeId}
-      </if>
-      <if test = "intakeNum != null and intakeNum !=''">
-        AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
-      </if>
-      <if test = "rtuAddr != null and rtuAddr !=''">
-        AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
-      </if>
-      <if test = "timeStart != null and timeStop != null">
-        AND oh.dt BETWEEN #{timeStart} AND #{timeStop}
-      </if>
-    </where>
-    ORDER BY oh.dt 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="getOnHourReports_last" resultType="com.dy.pipIrrGlobal.voRm.VoOnHour">
+        SELECT oh.intake_id      AS intakeId,
+               inta.`name`       AS intakeNum,
+               oh.rtu_addr       AS rtuAddr,
+               oh.dt             AS receiveTime,
+               oh.instant_amount AS instantAmount,
+               oh.total_amount   AS totalAmount,
+               oh.loss_amount    AS lossAmount,
+               oh.water_press    AS waterPress,
+               oh.battery_volt   AS batteryVolt,
+               oh.signal_value   AS signalValue,
+               oh.water_price    AS waterPrice
+        FROM rm_on_hour_report_last oh
+                 INNER JOIN pr_intake inta ON inta.id = oh.intake_id
+        <where>
+            <if test="intakeId != null and intakeId > 0">
+                AND oh.intake_id = #{intakeId}
+            </if>
+            <if test="intakeNum != null and intakeNum != ''">
+                AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
+            </if>
+            <if test="rtuAddr != null and rtuAddr != ''">
+                AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
+            </if>
+            <if test="timeStart != null and timeStop != null">
+                AND oh.dt BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+        ORDER BY oh.dt DESC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 
-  <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
-  <select id="getLargeFlowIntakesCount" resultType="java.lang.Long">
-    SELECT
-    COUNT(*) AS recordCount
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
-  </select>
+    <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
+    <select id="getLargeFlowIntakesCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.total_amount > #{totalAmount}
+    </select>
 
-  <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
-  <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
-    SELECT
-    inta.id AS intakeId,
-    inta.name AS intakeNum,
-    blo.name AS blockName,
-    CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
-    hou.dt AS getDate
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
-    ORDER BY hou.dt
-    <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="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
+        SELECT inta.id                                  AS intakeId,
+               inta.name                                AS intakeNum,
+               blo.name                                 AS blockName,
+               CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
+               hou.dt                                   AS getDate
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.total_amount > #{totalAmount}
+        ORDER BY hou.dt
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 
-  <!--鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
-  <select id="getSmallFlowIntakesCount" resultType="java.lang.Long">
-    SELECT
-    COUNT(*) AS recordCount
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.total_amount &lt; #{totalAmount}
-  </select>
+    <!--鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
+    <select id="getSmallFlowIntakesCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.total_amount &lt; #{totalAmount}
+    </select>
 
-  <!--鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙�-->
-  <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
-    SELECT
-    inta.id AS intakeId,
-    inta.name AS intakeNum,
-    blo.name AS blockName,
-    <!--    FORMAT(hou.total_amount,2) AS cumulativeFlow,-->
-    CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
-    hou.dt AS getDate
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.total_amount &lt; #{totalAmount}
-    ORDER BY hou.dt
-    <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="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
+        SELECT inta.id   AS intakeId,
+               inta.name AS intakeNum,
+               blo.name  AS blockName,
+        <!--    FORMAT(hou.total_amount,2) AS cumulativeFlow,-->
+        CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
+        hou.dt                                   AS getDate
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.total_amount &lt; #{totalAmount}
+        ORDER BY hou.dt
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 
-  <!--鑾峰彇娆犲帇鍙栨按鍙f暟閲�-->
-  <select id="getUnderVoltIntakesCount" resultType="java.lang.Long">
-    SELECT
-    COUNT(*) AS recordCount
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.battery_volt &lt; #{batteryVolt}
-  </select>
+    <!--鑾峰彇娆犲帇鍙栨按鍙f暟閲�-->
+    <select id="getUnderVoltIntakesCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.battery_volt &lt; #{batteryVolt}
+    </select>
 
-  <!--鑾峰彇娆犲帇鍙栨按鍙�-->
-  <select id="getUnderVoltIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoBatteryVolt">
-    SELECT
-    inta.id AS intakeId,
-    inta.name AS intakeNum,
-    blo.name AS blockName,
-    hou.battery_volt AS batteryVolt,
-    hou.dt AS getDate
-    FROM pr_intake inta
-    INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-    INNER JOIN ba_block blo ON blo.id = inta.blockId
-    WHERE inta.deleted = 0 AND hou.battery_volt &lt; #{batteryVolt}
-    ORDER BY hou.dt
-    <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="getUnderVoltIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoBatteryVolt">
+        SELECT inta.id          AS intakeId,
+               inta.name        AS intakeNum,
+               blo.name         AS blockName,
+               hou.battery_volt AS batteryVolt,
+               hou.dt           AS getDate
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        WHERE inta.deleted = 0
+          AND hou.battery_volt &lt; #{batteryVolt}
+        ORDER BY hou.dt
+        <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="getSpecifiedSignalIntakesCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        <where>
+            AND inta.deleted = 0
+            <if test="signalIntensity != null and signalIntensity == 1">
+                AND hou.signal_value &gt; 0
+                AND hou.signal_value &lt;= #{weak}
+            </if>
+            <if test="signalIntensity != null and signalIntensity == 2">
+                AND hou.signal_value &gt; #{weak}
+                AND hou.signal_value &lt;= #{ordinary}
+            </if>
+            <if test="signalIntensity != null and signalIntensity == 3">
+                AND hou.signal_value &gt; #{ordinary}
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇鎸囧畾淇″彿寮哄害鐨勫彇姘村彛-->
+    <select id="getSpecifiedSignalIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoSignalIntensity">
+        SELECT inta.id          AS intakeId,
+               inta.name        AS intakeNum,
+               blo.name         AS blockName,
+               hou.signal_value AS signValue,
+               hou.dt           AS getDate
+        FROM pr_intake inta
+                 INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+                 INNER JOIN ba_block blo ON blo.id = inta.blockId
+        <where>
+            AND inta.deleted = 0
+            <if test="signalIntensity != null and signalIntensity == 1">
+                AND hou.signal_value &gt; 0
+                AND hou.signal_value &lt;= #{weak}
+            </if>
+            <if test="signalIntensity != null and signalIntensity == 2">
+                AND hou.signal_value &gt; #{weak}
+                AND hou.signal_value &lt;= #{ordinary}
+            </if>
+            <if test="signalIntensity != null and signalIntensity == 3">
+                AND hou.signal_value &gt; #{ordinary}
+            </if>
+        </where>
+        ORDER BY hou.dt
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
index 24b3244..099c25f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -6,9 +6,11 @@
 import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
 import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
 import com.dy.pipIrrGlobal.voSt.VoIntake;
+import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
 import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
 import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
 import com.dy.pipIrrStatistics.intake.qo.IntakeQO;
+import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +40,12 @@
 
     @Value("${rtu.batteryVolt}")
     private Double batteryVolt;
+
+    @Value("${rtu.signalIntensity.weak}")
+    private Integer weak;
+
+    @Value("${rtu.signalIntensity.ordinary}")
+    private Integer ordinary;
 
     /**
      * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�
@@ -145,4 +153,29 @@
         return rsVo ;
     }
 
+    /**
+     * 鑾峰彇鎸囧畾淇″彿寮哄害鐨勫彇姘村彛
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoSignalIntensity>> getSpecifiedSignalIntakes(SignalIntensityQO qo) {
+        qo.setWeak(weak);
+        qo.setOrdinary(ordinary);
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getSpecifiedSignalIntakesCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoSignalIntensity>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportLastMapper.getSpecifiedSignalIntakes(params);
+        return rsVo ;
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
index ab1dc52..8f06af2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -7,10 +7,11 @@
 import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
 import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
 import com.dy.pipIrrGlobal.voSt.VoIntake;
+import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
 import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
 import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
 import com.dy.pipIrrStatistics.intake.qo.IntakeQO;
-import com.dy.pipIrrStatistics.result.StatisticlResultCode;
+import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -42,11 +43,7 @@
     @SsoAop()
     public BaseResponse<QueryResultVo<List<VoIntake>>> getNotOnlineIntakes(IntakeQO qo) {
         try {
-            QueryResultVo<List<VoIntake>> res = intakeSv.getNotOnlineIntakes(qo);
-            if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
-            }
-            return BaseResponseUtils.buildSuccess(res);
+            return BaseResponseUtils.buildSuccess(intakeSv.getNotOnlineIntakes(qo));
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -62,11 +59,7 @@
     @SsoAop()
     public BaseResponse<QueryResultVo<List<VoCumulativeFlow>>> getLargeFlowIntakes(CumulativeFlowQO qo) {
         try {
-            QueryResultVo<List<VoCumulativeFlow>> res = intakeSv.getLargeFlowIntakes(qo);
-            if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
-            }
-            return BaseResponseUtils.buildSuccess(res);
+            return BaseResponseUtils.buildSuccess(intakeSv.getLargeFlowIntakes(qo));
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -82,11 +75,7 @@
     @SsoAop()
     public BaseResponse<QueryResultVo<List<VoCumulativeFlow>>> getSmallFlowIntakes(CumulativeFlowQO qo) {
         try {
-            QueryResultVo<List<VoCumulativeFlow>> res = intakeSv.getSmallFlowIntakes(qo);
-            if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
-            }
-            return BaseResponseUtils.buildSuccess(res);
+            return BaseResponseUtils.buildSuccess(intakeSv.getSmallFlowIntakes(qo));
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -102,11 +91,23 @@
     @SsoAop()
     public BaseResponse<QueryResultVo<List<VoBatteryVolt>>> getUnderVoltIntakes(BatteryVoltQO qo) {
         try {
-            QueryResultVo<List<VoBatteryVolt>> res = intakeSv.getUnderVoltIntakes(qo);
-            if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage());
-            }
-            return BaseResponseUtils.buildSuccess(res);
+            return BaseResponseUtils.buildSuccess(intakeSv.getUnderVoltIntakes(qo));
+        } catch (Exception e) {
+            log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾淇″彿寮哄害鐨勫彇姘村彛
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getSpecifiedSignalIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoSignalIntensity>>> getSpecifiedSignalIntakes(SignalIntensityQO qo) {
+        try {
+            return BaseResponseUtils.buildSuccess(intakeSv.getSpecifiedSignalIntakes(qo));
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/SignalIntensityQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/SignalIntensityQO.java
new file mode 100644
index 0000000..69a66a0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/SignalIntensityQO.java
@@ -0,0 +1,30 @@
+package com.dy.pipIrrStatistics.intake.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-05 8:42
+ * @LastEditTime 2024-08-05 8:42
+ * @Description 淇″彿寮哄害鏌ヨ瀵硅薄
+ */
+
+@Data
+public class SignalIntensityQO extends QueryConditionVo {
+
+    /**
+     * 淇″彿寮哄害锛�1-寮憋紝2-涓�鑸紝3-寮�
+     */
+    private Integer signalIntensity;
+
+    /**
+     * 寮变俊鍙锋渶澶у��
+     */
+    private Integer weak;
+
+    /**
+     * 涓�鑸俊鍙锋渶澶у��
+     */
+    private Integer ordinary;
+}

--
Gitblit v1.8.0