From 5ee942699758ba6c75575b63fb24647bcda4fdb8 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 15 一月 2024 17:24:17 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java                           |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java                                |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java         |   11 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java      |   60 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml                                                |  135 ++-
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java        |   43 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java                                    |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoDivide.java                                      |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java                                    |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml                                              |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java          |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePermissionsMapper.java                      |   18 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml                                      |  409 ++++++++-----
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java                       |   36 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java                            |   23 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java                                   |   51 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java                                  |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRoleMapper.java                                 |   35 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java                            |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java                       |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml                                           |   42 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java              |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java                           |   12 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java       |   93 ++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java                          |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePermissions.java                           |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java          |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java                                      |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleSv.java                             |   32 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java                                |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java                     |   64 --
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePermissionsMapper.xml                                     |   59 +
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                 |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeLoss.java                                      |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/QueryVoFlowMeter.java   |   27 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java                                    |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeUnlock.java                                    |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java                                |   20 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntake.java                                    |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java                                 |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeReversal.java                                  |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java                                  |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java   |   69 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java |  139 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoRole.java                                        |   11 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml                                 |   15 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml                                          |   99 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java                           |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java                  |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java                             |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCancel.java                                    |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java                            |   63 --
 52 files changed, 1,164 insertions(+), 590 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRoleMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRoleMapper.java
index d88cdf1..a0d79c5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRoleMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRoleMapper.java
@@ -2,12 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaRole;
-import com.dy.pipIrrGlobal.voBa.VoRole;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -31,25 +29,32 @@
     int updateByPrimaryKey(BaRole record);
 
     /**
+     * 鏌ヨ鏌愪釜鐢ㄦ埛鎵�闅跺睘浜庣殑瑙掕壊
+     * @param userId 鐢ㄦ埛ID
+     * @return List<BaRole>
+     */
+    List<BaRole> selectByUserId(@Param("userId") Long userId) ;
+
+    /**
      * 鏍规嵁瑙掕壊鍚嶇О鏌ヨ璁板綍鏁伴噺
      * @param roleName
      * @return
      */
     Integer getRecordCountByName(@Param("roleName") String roleName);
 
-    /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�
-     * @param params
-     * @return
-     */
-    Long getRecordCount(Map<?, ?> params);
-
-    /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍
-     * @param params
-     * @return
-     */
-    List<VoRole> getRoles(Map<?, ?> params);
+    ///**
+    // * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�
+    // * @param params
+    // * @return
+    // */
+    //Long getRecordCount(Map<?, ?> params);
+    //
+    ///**
+    // * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍
+    // * @param params
+    // * @return
+    // */
+    //List<VoRole> getRoles(Map<?, ?> params);
 
     /**
      * 鏍规嵁roleId閫昏緫鍒犻櫎瑙掕壊瀵硅薄
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePermissionsMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePermissionsMapper.java
index 0e3781b..12e0aab 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePermissionsMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePermissionsMapper.java
@@ -1,7 +1,11 @@
 package com.dy.pipIrrGlobal.daoBa;
 
 import com.dy.pipIrrGlobal.pojoBa.BaRolePermissions;
+import com.dy.pipIrrGlobal.voBa.VoRole;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -27,4 +31,18 @@
      * @return
      */
     int delPermissionsByRoleId(@Param("roleId") Long roleId);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍
+     * @param params
+     * @return
+     */
+    List<VoRole> getRoles(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
index 9d2a020..c217883 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
@@ -11,8 +11,8 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2023-12-29 9:59
- * @LastEditTime 2024-01-02 16:22
+ * @date 2024-01-15 16:51
+ * @LastEditTime 2024-01-15 16:51
  * @Description
  */
 
@@ -46,10 +46,10 @@
 
     /**
      * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栨帶鍒跺櫒鍒楄〃
-     * @param controllerCode
+     * @param rtuAddr
      * @return
      */
-    List<Map<String, Object>> getControllersByCode(@Param("controllerCode") String controllerCode);
+    List<Map<String, Object>> getControllersByCode(@Param("rtuAddr") String rtuAddr);
 
     /**
      * 鏍规嵁鎺у埗鍣ㄧ紪鍙烽�昏緫鍒犻櫎鎺у埗
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java
index 1c33361..cdd3082 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java
@@ -1,7 +1,14 @@
 package com.dy.pipIrrGlobal.daoPr;
 
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -24,6 +31,7 @@
 
     /**
      * 鏍规嵁鐩戞祴绔欑紪鍙峰垹闄ょ洃娴嬬珯
+     *
      * @param flowMonitoringId
      * @return
      */
@@ -31,8 +39,34 @@
 
     /**
      * 鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺
+     *
      * @param flowMonitoringId
      * @return
      */
-    Integer getRecordCountOfFlowMonitoring(@Param("flowMonitoringId") Long flowMonitoringId);
+    Integer getRecordCountOfFlowMonitoringByFlowMonitoringId(@Param("flowMonitoringId") Long flowMonitoringId);
+
+    /**
+     * 鏍规嵁鐩戞祴绔� 鍚嶇О 缁戝畾鐘舵�� 鑾峰彇鏈垹闄ょ殑鐩戞祴绔欐暟閲�
+     *
+     * @param params
+     * @return
+     */
+    Integer getRecordCountOfFlowMonitoring(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇娴侀噺鐩戞祴绔欏疄浣撹褰�
+     *
+     * @param params
+     * @return 瀹炰綋闆嗗悎
+     */
+    List<VoFlowMonitoring> getPrFlowMonitoring(Map<?, ?> params);
+
+    /**
+     * 鏌ヨ鍏ㄩ儴娴侀噺鐩戞祴绔欏疄浣撹褰�
+     *
+     * @return 瀹炰綋闆嗗悎
+     */
+    List<PrFlowMonitoring> selectAll();
+
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java
index e4a7ada..3cdb561 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java
@@ -1,7 +1,12 @@
 package com.dy.pipIrrGlobal.daoPr;
 
 import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -34,5 +39,21 @@
      * @param flowmeterId
      * @return
      */
-    Integer getRecordCountOfFlowmeter(@Param("flowmeterId") Long flowmeterId);
+    Integer getRecordCountOfFlowmeterByCode(@Param("flowmeterId") Long flowmeterId);
+
+    /**
+     * 鏍规嵁娴侀噺璁� 缂栧彿 鍦ㄧ嚎鐘舵�� 鑾峰彇鏈垹闄ょ殑娴侀噺璁℃暟閲�
+     *
+     * @param params
+     * @return
+     */
+    Integer getRecordCountOfFlowMeterByOthers(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇娴侀噺璁″疄浣撹褰�
+     *
+     * @param params
+     * @return 瀹炰綋闆嗗悎
+     */
+    List<VoFlowMeter> getFlowMeters(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java
index f6cdffd..4c14a98 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java
@@ -3,6 +3,9 @@
 import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author ZhuBaoMin
  * @date 2024-01-05 10:18
@@ -30,4 +33,11 @@
      * @return 绗﹀悎鏉′欢璁板綍鏁伴噺
      */
     Integer getBindRecordCount(@Param("monitoringId") Long monitoringId, @Param("flowmeterId") Long flowmeterId, @Param("operateType") Byte operateType);
+
+    /**
+     * 鏍规嵁 娴侀噺鐩戞祴绔欑紪鍙� 鑾峰彇 缁戝畾璁板綍 鎸夋搷浣滄椂闂撮檷搴�
+     * @param monitoringId 鐩戞祴绔欑紪鍙�
+     * @return 缁戝畾璁板綍
+     */
+    List<Map<String, Object>> getBingRecordsByMonitoringId(Long monitoringId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
index 373c4e7..8f084d4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
@@ -29,7 +29,7 @@
 @AllArgsConstructor
 @Schema(name = "瑙掕壊瀹炰綋")
 public class BaRole implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151511001L;
 
     /**
     * 涓婚敭
@@ -48,10 +48,10 @@
     private String name;
 
     /**
-    * 鎿嶄綔浜虹紪鍙�
+    * 鎿嶄綔浜篒D
     */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePermissions.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePermissions.java
index 3bff3ae..966aec1 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePermissions.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePermissions.java
@@ -7,16 +7,18 @@
  * @Description
  */
 
+import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.dy.common.po.BaseEntity;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.Positive;
-import jakarta.validation.constraints.Size;
 import lombok.*;
 
 /**
@@ -31,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "瑙掕壊鏉冮檺瀹炰綋")
 public class BaRolePermissions implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151612001L;
 
     /**
     * 涓婚敭
@@ -49,16 +51,10 @@
     private Long roleid;
 
     /**
-     * 瑙掕壊鍚嶇О
-     */
-    @Schema(description = "瑙掕壊鍚嶇О", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Size(max = 20)
-    private String roleName;
-
-    /**
     * 鏉冮檺鍒楄〃
     */
     @Schema(description = "鏉冮檺鍒楄〃", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotBlank(message = "鏉冮檺鍒楄〃涓嶈兘涓虹┖")
-    private String permissions;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private JSONArray permissions;
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
index 37884d4..ed77806 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java
@@ -15,8 +15,8 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2023-12-29 9:59
- * @LastEditTime 2023-12-29 9:59
+ * @date 2024-01-15 16:51
+ * @LastEditTime 2024-01-15 16:51
  * @Description
  */
 
@@ -32,7 +32,7 @@
 @AllArgsConstructor
 @Schema(name = "鎺у埗鍣ㄥ疄浣�")
 public class PrController implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517001L;
 
     /**
      * 涓婚敭
@@ -43,12 +43,12 @@
     private Long id;
 
     /**
-     * 缂栧彿
+     * 鎺у埗鍣ㄥ湴鍧�
      */
-    @Schema(description = "缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotBlank(message = "鎺у埗鍣ㄧ紪鍙蜂笉鑳戒负绌�")
-    @Length(message = "鎺у埗鍣ㄧ紪鍙蜂笉澶т簬{max}瀛�",max = 25)
-    private String code;
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鎺у埗鍣ㄥ湴鍧�涓嶈兘涓虹┖")
+    @Length(message = "鎺у埗鍣ㄥ湴鍧�涓嶅ぇ浜巤max}瀛�",max = 11)
+    private String rtuaddr;
 
     /**
      * 閫氳鍗忚
@@ -77,9 +77,9 @@
     private Byte addways;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
index e46bbfc..c88ed99 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
@@ -33,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "鍒嗘按鎴垮疄浣�")
 public class PrDivide implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517002L;
     /**
      * 涓婚敭
      */
@@ -129,10 +129,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java
index 1ca4c29..b156927 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java
@@ -29,7 +29,7 @@
 @AllArgsConstructor
 @Schema(name = "娴侀噺鐩戞祴绔欏疄浣�")
 public class PrFlowMonitoring implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517004L;
 
     /**
     * 涓婚敭
@@ -91,10 +91,10 @@
     private String remarks;
 
     /**
-    * 鎿嶄綔浜虹紪鍙�
+    * 鎿嶄綔浜篒D
     */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java
index cdb8538..892d5cd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java
@@ -28,7 +28,7 @@
 @AllArgsConstructor
 @Schema(name = "娴侀噺璁″疄浣�")
 public class PrFlowmeter implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517003L;
 
     /**
     * 涓婚敭
@@ -73,9 +73,9 @@
     private Byte addways;
 
     /**
-    * 鎿嶄綔浜虹紪鍙�
+    * 鎿嶄綔浜篒D
     */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntake.java
index 92a4428..61aad7d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntake.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntake.java
@@ -26,7 +26,7 @@
 @AllArgsConstructor
 @Schema(name = "鍙栨按鍙e疄浣�")
 public class PrIntake implements BaseEntity {
-    public static final long serialVersionUID = 202312260931001L;
+    public static final long serialVersionUID = 202401151517005L;
     /**
      * 涓婚敭
      */
@@ -105,10 +105,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java
index 745a435..6cb7b1a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java
@@ -35,7 +35,7 @@
 @AllArgsConstructor
 @Schema(name = "鍙栨按鍙f崋缁戝疄浣�")
 public class PrIntakeController implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517006L;
 
     /**
     * 涓婚敭
@@ -77,10 +77,10 @@
     private String remarks;
 
     /**
-    * 鎿嶄綔浜虹紪鍙�
+    * 鎿嶄綔浜篒D
     */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java
index 8f1de60..c4f5cac 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java
@@ -31,7 +31,7 @@
 @AllArgsConstructor
 @Schema(name = "鐩戞祴绔欐祦閲忚鍏宠仈瀹炰綋")
 public class PrMonitoringFlowmeter implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151517007L;
 
     /**
     * 涓婚敭
@@ -73,10 +73,10 @@
     private String remarks;
 
     /**
-    * 鎿嶄綔浜虹紪鍙�
+    * 鎿嶄綔浜篒D
     */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
index bd8befb..ed80934 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
@@ -32,7 +32,7 @@
 @AllArgsConstructor
 @Schema(name = "寮�鍗�/琛ュ崱瀹炰綋")
 public class SeActiveCard implements BaseEntity {
-    public static final long serialVersionUID = 202312071927001L;
+    public static final long serialVersionUID = 202401151518001L;
 
     /**
      * 涓婚敭
@@ -107,10 +107,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCancel.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCancel.java
index 34aa9d7..73ca6ca 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCancel.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCancel.java
@@ -33,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "姘村崱娉ㄩ攢瀹炰綋")
 public class SeCancel implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151518002L;
     /**
      * 涓婚敭
      */
@@ -79,10 +79,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
index e61a205..c99a127 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
@@ -30,7 +30,7 @@
 @AllArgsConstructor
 @Schema(name = "鍐滄埛瀹炰綋")
 public class SeClient implements BaseEntity {
-    public static final long serialVersionUID = 202311141539001L;
+    public static final long serialVersionUID = 202401151518003L;
 
     /**
      * 涓婚敭
@@ -161,10 +161,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
index 6eaa503..d9600e3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
@@ -34,7 +34,7 @@
 @AllArgsConstructor
 @Schema(name = "鍐滄埛姘村崱瀹炰綋")
 public class SeClientCard implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151518004L;
 
     /**
      * 涓婚敭
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeLoss.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeLoss.java
index 2dd1125..26d0bdd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeLoss.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeLoss.java
@@ -33,7 +33,7 @@
 @Schema(name = "鎸傚け瀹炰綋")
 
 public class SeLoss implements BaseEntity {
-    public static final long serialVersionUID = 20231191728001L;
+    public static final long serialVersionUID = 202401151518005L;
     /**
      * 涓婚敭
      */
@@ -79,10 +79,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java
index 5bee2dc..efda2e4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java
@@ -30,7 +30,7 @@
 @AllArgsConstructor
 @Schema(name = "浠樻鏂瑰紡瀹炰綋")
 public class SePaymentMethod implements BaseEntity {
-    public static final long serialVersionUID = 20231191728001L;
+    public static final long serialVersionUID = 202401151518006L;
 
     /**
     * 涓婚敭
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
index 13551c8..2c88b50 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
@@ -27,7 +27,7 @@
 @Schema(name = "姘村崱鍏呭�煎疄浣�")
 public class SeRecharge implements BaseEntity {
 
-    public static final long serialVersionUID = 20231191728001L;
+    public static final long serialVersionUID = 202401151519001L;
 
     /**
      * 涓婚敭
@@ -107,10 +107,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
index a364faa..92c9f2b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
@@ -33,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "姘村崱鍏呭�煎巻鍙插疄浣�")
 public class SeRechargeHistory implements BaseEntity {
-    public static final long serialVersionUID = 202312080812001L;
+    public static final long serialVersionUID = 202401151519002L;
 
     /**
      * 涓婚敭
@@ -113,10 +113,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeReversal.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeReversal.java
index 8a82772..ebb1554 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeReversal.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeReversal.java
@@ -33,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "姘村崱鍐叉瀹炰綋")
 public class SeReversal implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151519003L;
 
     /**
      * 涓婚敭
@@ -80,10 +80,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeUnlock.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeUnlock.java
index 0fd30e2..2be74c5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeUnlock.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeUnlock.java
@@ -33,7 +33,7 @@
 @AllArgsConstructor
 @Schema(name = "姘村崱瑙i攣瀹炰綋")
 public class SeUnlock implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151519004L;
 
     /**
      * 涓婚敭
@@ -73,10 +73,10 @@
     private String remarks;
 
     /**
-     * 鎿嶄綔浜虹紪鍙�
+     * 鎿嶄綔浜篒D
      */
-    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜篒D蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
     private Long operator;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java
index 1133e8d..14b8dd4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java
@@ -32,7 +32,7 @@
 @AllArgsConstructor
 @Schema(name = "鐢靛瓙閽卞寘琛ㄥ疄浣�")
 public class SeWallet implements BaseEntity {
-    public static final long serialVersionUID = 1L;
+    public static final long serialVersionUID = 202401151519005L;
 
     /**
     * 涓婚敭
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java
index 842defc..239ff8e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java
@@ -52,67 +52,4 @@
     */
     private String remarks;
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getWalletid() {
-        return walletid;
-    }
-
-    public void setWalletid(Long walletid) {
-        this.walletid = walletid;
-    }
-
-    public Long getClientid() {
-        return clientid;
-    }
-
-    public void setClientid(Long clientid) {
-        this.clientid = clientid;
-    }
-
-    public Double getMoney() {
-        return money;
-    }
-
-    public void setMoney(Double money) {
-        this.money = money;
-    }
-
-    public Double getAmount() {
-        return amount;
-    }
-
-    public void setAmount(Double amount) {
-        this.amount = amount;
-    }
-
-    public Double getAfterrecharge() {
-        return afterrecharge;
-    }
-
-    public void setAfterrecharge(Double afterrecharge) {
-        this.afterrecharge = afterrecharge;
-    }
-
-    public Date getRechargedt() {
-        return rechargedt;
-    }
-
-    public void setRechargedt(Date rechargedt) {
-        this.rechargedt = rechargedt;
-    }
-
-    public String getRemarks() {
-        return remarks;
-    }
-
-    public void setRemarks(String remarks) {
-        this.remarks = remarks;
-    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java
index 668c31a..9a14c01 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java
@@ -51,68 +51,4 @@
     * 澶囨敞淇℃伅
     */
     private String remarks;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getWalletid() {
-        return walletid;
-    }
-
-    public void setWalletid(Long walletid) {
-        this.walletid = walletid;
-    }
-
-    public Long getClientid() {
-        return clientid;
-    }
-
-    public void setClientid(Long clientid) {
-        this.clientid = clientid;
-    }
-
-    public Double getMoney() {
-        return money;
-    }
-
-    public void setMoney(Double money) {
-        this.money = money;
-    }
-
-    public Double getAmount() {
-        return amount;
-    }
-
-    public void setAmount(Double amount) {
-        this.amount = amount;
-    }
-
-    public Double getAfterrecharge() {
-        return afterrecharge;
-    }
-
-    public void setAfterrecharge(Double afterrecharge) {
-        this.afterrecharge = afterrecharge;
-    }
-
-    public Date getRechargedt() {
-        return rechargedt;
-    }
-
-    public void setRechargedt(Date rechargedt) {
-        this.rechargedt = rechargedt;
-    }
-
-    public String getRemarks() {
-        return remarks;
-    }
-
-    public void setRemarks(String remarks) {
-        this.remarks = remarks;
-    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoRole.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoRole.java
index 966e73e..6b88843 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoRole.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoRole.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrGlobal.voBa;
 
+import com.alibaba.fastjson2.JSONArray;
 import com.dy.common.po.BaseEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -20,17 +21,17 @@
 public class VoRole implements BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    @Schema(title = "ID")
-    private Long id;
-
     @Schema(title = "瑙掕壊缂栧彿")
-    private Long roleId;
+    private String roleId;
 
     @Schema(title = "瑙掕壊鍚嶇О")
     private String roleName;
 
+    @Schema(title = "鏉冮檺ID")
+    private Long perId;
+
     @Schema(title = "鏉冮檺鍒楄〃")
-    private String permissions;
+    private JSONArray permissions;
 
     @Schema(title = "鎿嶄綔浜�")
     private String operator;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
index d5d4934..2a35b3c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java
@@ -27,10 +27,10 @@
     @ColumnWidth(10)
     private Long id;
 
-    @Schema(title = "鎺у埗鍣ㄧ紪鍙�")
-    @ExcelProperty("鎺у埗鍣ㄧ紪鍙�")
+    @Schema(title = "鎺у埗鍣ㄥ湴鍧�")
+    @ExcelProperty("鎺у埗鍣ㄥ湴鍧�")
     @ColumnWidth(15)
-    private String controllerCode;
+    private String rtuAddr;
 
     @Schema(title = "鍦ㄧ嚎鐘舵��")
     @ExcelProperty("鍦ㄧ嚎鐘舵��")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoDivide.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoDivide.java
index 63190d4..d65d10f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoDivide.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoDivide.java
@@ -31,7 +31,7 @@
     @Schema(title = "鍒嗘按鎴跨紪鍙�")
     @ExcelProperty("鍒嗘按鎴跨紪鍙�")
     @ColumnWidth(15)
-    private Long divideId;
+    private String divideId;
 
     @Schema(title = "鍒嗘按鎴垮悕绉�")
     @ExcelProperty("鍒嗘按鎴垮悕绉�")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java
new file mode 100644
index 0000000..562c4c0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrGlobal.voPr;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/1/15  10:58
+ * @LastEditTime :2024/1/15  10:58
+ * @Description
+ */
+@Data
+@Schema(title = "娴侀噺璁¤鍥惧璞�")
+public class VoFlowMeter implements BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(title = "ID")
+    @ExcelProperty("ID")
+    @ColumnWidth(10)
+    private Long id;
+
+    @Schema(title = "绠$綉娴侀噺璁$紪鍙�")
+    @ExcelProperty("绠$綉娴侀噺璁$紪鍙�")
+    @ColumnWidth(15)
+    private String code;
+
+    @Schema(title = "鍦ㄧ嚎鐘舵��")
+    @ExcelProperty("鍦ㄧ嚎鐘舵��")
+    @ColumnWidth(1)
+    private Integer onlineState;
+
+    @Schema(title = "绠$綉娴侀噺鐩戞祴绔欏悕绉�")
+    @ExcelProperty("绠$綉娴侀噺鐩戞祴绔欏悕绉�")
+    @ColumnWidth(15)
+    private String name;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(title = "鎿嶄綔鏃堕棿")
+    @ExcelProperty("鎿嶄綔鏃堕棿")
+    @ColumnWidth(30)
+    private Date operateDt;
+}
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 b1b3f1f..edd8936 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -68,6 +68,7 @@
         lazy-load-trigger-methods: ""  # 闃绘尅涓嶇浉骞茬殑鎿嶄綔瑙﹀彂锛屽疄鐜版噿鍔犺浇
         cache-enabled: true  #鎵撳紑鍏ㄥ眬缂撳瓨寮�鍏筹紙浜岀骇鐜锛夛紝榛樿鍊兼槸true
         default-enum-type-handler: com.dy.common.mybatis.envm.EnumCodeTypeHandler
+    type-handlers-package: com.dy.pipIrrGlobal.pojoBa.MySqlJsonHandler
 
 pipIrr:
     global:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml
index c9c866e..12c8b3a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRoleMapper.xml
@@ -1,15 +1,49 @@
 <?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.daoBa.BaRoleMapper">
+<!--  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaRole">-->
+<!--    &lt;!&ndash;@mbg.generated&ndash;&gt;-->
+<!--    &lt;!&ndash;@Table ba_role&ndash;&gt;-->
+<!--    <id column="id" jdbcType="BIGINT" property="id" />-->
+<!--    <result column="name" jdbcType="VARCHAR" property="name" />-->
+<!--    <result column="operator" jdbcType="BIGINT" property="operator" />-->
+<!--    <result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" />-->
+<!--    <result column="deleted" jdbcType="TINYINT" property="deleted" />-->
+<!--  </resultMap>-->
+
   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaRole">
-    <!--@mbg.generated-->
-    <!--@Table ba_role-->
-    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="id" jdbcType="BIGINT" property="id" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="operator" jdbcType="BIGINT" property="operator" />
     <result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" />
-    <result column="deleted" jdbcType="TINYINT" property="deleted" />
+    <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Deleted"/>
   </resultMap>
+
+  <resultMap id="partResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaRole">
+    <result column="id" jdbcType="BIGINT" property="id" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" />
+  </resultMap>
+
+<!--  <resultMap id="someResultMap" extends="partResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaRole">-->
+<!--    <collection property="priviList" fetchType="eager" column="{roleId=id}" select="com.dy.pipIrrGlobal.daoBa.BaPrivilegeMapper.selectPrivilegeByRoleId" />-->
+<!--  </resultMap>-->
+
+  <sql id="part_Column_List">
+    id, name, operator, operate_dt, deleted
+  </sql>
+
+  <select id="selectByUserId" resultMap="partResultMap">
+    select <include refid="part_Column_List" />
+    from ba_role r
+    inner join ba_user_role ur on r.id = ur.roleId
+    where r.deleted != 1
+    <if test="userId != null">
+      and ur.userId = #{userId,jdbcType=BIGINT}
+    </if>
+  </select>
+
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, `name`, `operator`, operate_dt, deleted
@@ -21,6 +55,7 @@
     from ba_role
     where id = #{id,jdbcType=BIGINT}
   </select>
+
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     <!--@mbg.generated-->
     delete from ba_role
@@ -110,57 +145,57 @@
     WHERE name = #{roleName}
   </select>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�-->
-  <select id="getRecordCount" resultType="java.lang.Long">
-    SELECT
-        COUNT(*) AS recordCount
-    FROM ba_role role
-    LEFT JOIN ba_role_permissions per ON per.roleId = role.id
-    <where>
-      AND role.deleted = 0
+<!--  &lt;!&ndash;鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�&ndash;&gt;-->
+<!--  <select id="getRecordCount" resultType="java.lang.Long">-->
+<!--    SELECT-->
+<!--        COUNT(*) AS recordCount-->
+<!--    FROM ba_role role-->
+<!--    LEFT JOIN ba_role_permissions per ON per.roleId = role.id-->
+<!--    <where>-->
+<!--      AND role.deleted = 0-->
 
-      <if test = "roleId != null and roleId > 0">
-        AND role.id = ${roleId}
-      </if>
+<!--      <if test = "roleId != null and roleId > 0">-->
+<!--        AND role.id = ${roleId}-->
+<!--      </if>-->
 
-      <if test = "roleName != null and roleName !=''">
-        AND role.name LIKE CONCAT('%',#{roleName},'%')
-      </if>
-    </where>
-  </select>
+<!--      <if test = "roleName != null and roleName !=''">-->
+<!--        AND role.name LIKE CONCAT('%',#{roleName},'%')-->
+<!--      </if>-->
+<!--    </where>-->
+<!--  </select>-->
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍-->
-  <select id="getRoles" resultType="com.dy.pipIrrGlobal.voBa.VoRole">
-    SELECT
-        (@i:=@i+1) AS id,
-        t.* FROM
-        (
-          SELECT
-            role.id AS roleId,
-            role.name AS roleName,
-            per.permissions,
-            (SELECT `name` FROM ba_user WHERE id =  role.operator) AS operator,
-            role.operate_dt AS operateDt
-          FROM ba_role role
-            LEFT JOIN ba_role_permissions per ON per.roleId = role.id
-          <where>
-            AND role.deleted = 0
+<!--  &lt;!&ndash;鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍&ndash;&gt;-->
+<!--  <select id="getRoles" resultType="com.dy.pipIrrGlobal.voBa.VoRole">-->
+<!--    SELECT-->
+<!--        (@i:=@i+1) AS id,-->
+<!--        t.* FROM-->
+<!--        (-->
+<!--          SELECT-->
+<!--            role.id AS roleId,-->
+<!--            role.name AS roleName,-->
+<!--            per.permissions,-->
+<!--            (SELECT `name` FROM ba_user WHERE id =  role.operator) AS operator,-->
+<!--            role.operate_dt AS operateDt-->
+<!--          FROM ba_role role-->
+<!--            LEFT JOIN ba_role_permissions per ON per.roleId = role.id-->
+<!--          <where>-->
+<!--            AND role.deleted = 0-->
 
-            <if test = "roleId != null and roleId > 0">
-              AND role.id = ${roleId}
-            </if>
+<!--            <if test = "roleId != null and roleId > 0">-->
+<!--              AND role.id = ${roleId}-->
+<!--            </if>-->
 
-            <if test = "roleName != null and roleName !=''">
-              AND role.name LIKE CONCAT('%',#{roleName},'%')
-            </if>
-          </where>
-          ORDER BY role.operate_dt DESC
-          <if test="pageCurr != null and pageSize != null">
-            LIMIT ${pageCurr}, ${pageSize}
-          </if>
-      ) t
-    , (SELECT @i:=0) AS itable
-  </select>
+<!--            <if test = "roleName != null and roleName !=''">-->
+<!--              AND role.name LIKE CONCAT('%',#{roleName},'%')-->
+<!--            </if>-->
+<!--          </where>-->
+<!--          ORDER BY role.operate_dt DESC-->
+<!--          <if test="pageCurr != null and pageSize != null">-->
+<!--            LIMIT ${pageCurr}, ${pageSize}-->
+<!--          </if>-->
+<!--      ) t-->
+<!--    , (SELECT @i:=0) AS itable-->
+<!--  </select>-->
 
   <!--鏍规嵁roleId閫昏緫鍒犻櫎瑙掕壊瀵硅薄-->
   <update id="deleteRoleById">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePermissionsMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePermissionsMapper.xml
index 9fa4b68..9568ad5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePermissionsMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaRolePermissionsMapper.xml
@@ -6,12 +6,14 @@
     <!--@Table ba_role_permissions-->
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="roleId" jdbcType="BIGINT" property="roleid" />
-    <result column="permissions" jdbcType="VARCHAR" property="permissions" />
+<!--    <result column="permissions" jdbcType="VARCHAR" property="permissions" />-->
+    <result column="permissions" property="permissions" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, roleId, permissions
   </sql>
+
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select 
@@ -34,7 +36,7 @@
     <!--@mbg.generated-->
     insert into ba_role_permissions (id, roleId, permissions
       )
-    values (#{id,jdbcType=BIGINT}, #{roleid,jdbcType=BIGINT}, #{permissions,jdbcType=VARCHAR}
+    values (#{id,jdbcType=BIGINT}, #{roleid,jdbcType=BIGINT}, #{permissions,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}
       )
   </insert>
 
@@ -60,7 +62,7 @@
         #{roleid,jdbcType=BIGINT},
       </if>
       <if test="permissions != null">
-        #{permissions,jdbcType=VARCHAR},
+        #{permissions,jdbcType=JAVA_OBJECT,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
       </if>
     </trim>
   </insert>
@@ -72,7 +74,7 @@
         roleId = #{roleid,jdbcType=BIGINT},
       </if>
       <if test="permissions != null">
-        permissions = #{permissions,jdbcType=VARCHAR},
+        permissions = #{permissions,jdbcType=JAVA_OBJECT,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
       </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
@@ -81,7 +83,54 @@
     <!--@mbg.generated-->
     update ba_role_permissions
     set roleId = #{roleid,jdbcType=BIGINT},
-      permissions = #{permissions,jdbcType=VARCHAR}
+      permissions = #{permissions,jdbcType=JAVA_OBJECT,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍鏁�-->
+  <select id="getRecordCount" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM ba_role role
+    LEFT JOIN ba_role_permissions per ON per.roleId = role.id
+    <where>
+      AND role.deleted = 0
+
+      <if test = "roleId != null and roleId > 0">
+        AND role.id = ${roleId}
+      </if>
+
+      <if test = "roleName != null and roleName !=''">
+        AND role.name LIKE CONCAT('%',#{roleName},'%')
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇瑙掕壊璁板綍-->
+  <select id="getRoles" resultType="com.dy.pipIrrGlobal.voBa.VoRole">
+    SELECT
+
+      CAST(role.id AS char) AS roleId,
+      role.name AS roleName,
+      per.id AS perId,
+      (SELECT `name` FROM ba_user WHERE id =  role.operator) AS operator,
+      role.operate_dt AS operateDt
+    FROM ba_role role
+        LEFT JOIN ba_role_permissions per ON per.roleId = role.id
+    <where>
+      AND role.deleted = 0
+
+      <if test = "roleId != null and roleId > 0">
+        AND role.id = ${roleId}
+      </if>
+
+      <if test = "roleName != null and roleName !=''">
+        AND role.name LIKE CONCAT('%',#{roleName},'%')
+      </if>
+    </where>
+    ORDER BY role.operate_dt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${pageCurr}, ${pageSize}
+    </if>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index ef5aef9..d1e61b0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -5,7 +5,7 @@
     <!--@mbg.generated-->
     <!--@Table pr_controller-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" />
     <result column="protocol" jdbcType="VARCHAR" property="protocol" />
     <result column="onlineState" jdbcType="TINYINT" property="onlinestate" />
     <result column="reportTime" jdbcType="TIMESTAMP" property="reporttime" />
@@ -16,7 +16,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, deleted
+    id, rtuAddr, protocol, onlineState, reportTime, addWays, `operator`, operateDt, deleted
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -30,19 +30,17 @@
     delete from pr_controller
     where id = #{id,jdbcType=BIGINT}
   </delete>
-
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
     <!--@mbg.generated-->
-    insert into pr_controller (id, code, protocol, 
+    insert into pr_controller (id, rtuAddr, protocol, 
       onlineState, reportTime, addWays, 
       `operator`, operateDt, deleted
       )
-    values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, 
+    values (#{id,jdbcType=BIGINT}, #{rtuaddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, 
       #{onlinestate,jdbcType=TINYINT}, #{reporttime,jdbcType=TIMESTAMP}, #{addways,jdbcType=TINYINT}, 
       #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}
       )
   </insert>
-
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
     <!--@mbg.generated-->
     insert into pr_controller
@@ -50,8 +48,8 @@
       <if test="id != null">
         id,
       </if>
-      <if test="code != null">
-        code,
+      <if test="rtuaddr != null">
+        rtuAddr,
       </if>
       <if test="protocol != null">
         protocol,
@@ -79,8 +77,8 @@
       <if test="id != null">
         #{id,jdbcType=BIGINT},
       </if>
-      <if test="code != null">
-        #{code,jdbcType=VARCHAR},
+      <if test="rtuaddr != null">
+        #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="protocol != null">
         #{protocol,jdbcType=VARCHAR},
@@ -109,8 +107,8 @@
     <!--@mbg.generated-->
     update pr_controller
     <set>
-      <if test="code != null">
-        code = #{code,jdbcType=VARCHAR},
+      <if test="rtuaddr != null">
+        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       </if>
       <if test="protocol != null">
         protocol = #{protocol,jdbcType=VARCHAR},
@@ -139,7 +137,7 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
     <!--@mbg.generated-->
     update pr_controller
-    set code = #{code,jdbcType=VARCHAR},
+    set rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
       protocol = #{protocol,jdbcType=VARCHAR},
       onlineState = #{onlinestate,jdbcType=TINYINT},
       reportTime = #{reporttime,jdbcType=TIMESTAMP},
@@ -153,11 +151,10 @@
   <!--鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰曟暟-->
   <select id="getRecordCount" resultType="java.lang.Long">
     SELECT
-      COUNT(*) AS recordCount
+        COUNT(*) AS recordCount
     FROM pr_controller con
         INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
         INNER JOIN pr_intake inta ON ic.intakeId = inta.id
-        , (SELECT @i:=0) AS itable
     <where>
       AND ic.operateType = 1
 
@@ -165,8 +162,8 @@
         AND con.id = ${id}
       </if>
 
-      <if test = "controllerCode != null and controllerCode !=''">
-        AND con.code like CONCAT('%',#{controllerCode},'%')
+      <if test = "rtuAddr != null and rtuAddr !=''">
+        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
       </if>
 
       <if test = "onlineState != null and onlineState > 0">
@@ -182,50 +179,46 @@
   <!--鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰�-->
   <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController">
     SELECT
-        (@i:=@i+1) AS id,
-        t.* FROM(
-          SELECT
-            con.code AS controllerCode,
-            (CASE
-                WHEN con.onlineState = 1 THEN "鍦ㄧ嚎"
-                WHEN con.onlineState = 2 THEN "绂荤嚎"
-            END) AS onlineState,
-            inta.name AS intakeName,
-            (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
-            con.reportTime
-          FROM pr_controller con
-            INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
-            INNER JOIN pr_intake inta ON ic.intakeId = inta.id
-          <where>
-            AND ic.operateType = 1
+        con.rtuAddr AS rtuAddr,
+        (CASE
+            WHEN con.onlineState = 1 THEN "鍦ㄧ嚎"
+            WHEN con.onlineState = 2 THEN "绂荤嚎"
+        END) AS onlineState,
+        inta.name AS intakeName,
+        (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
+        con.reportTime
+    FROM pr_controller con
+        INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
+        INNER JOIN pr_intake inta ON ic.intakeId = inta.id
+    <where>
+      AND ic.operateType = 1
 
-            <if test = "id != null and id > 0">
-              AND con.id = ${id}
-            </if>
+      <if test = "id != null and id > 0">
+        AND con.id = ${id}
+      </if>
 
-            <if test = "controllerCode != null and controllerCode !=''">
-              AND con.code like CONCAT('%',#{controllerCode},'%')
-            </if>
+      <if test = "rtuAddr != null and rtuAddr !=''">
+        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
+      </if>
 
-            <if test = "onlineState != null and onlineState > 0">
-              AND con.onlineState = ${onlineState}
-            </if>
+      <if test = "onlineState != null and onlineState > 0">
+        AND con.onlineState = ${onlineState}
+      </if>
 
-            <if test = "bindNumber != null and bindNumber > 0">
-              AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
-            </if>
-          </where>
-          ORDER BY con.operateDt DESC
-          <if test="pageCurr != null and pageSize != null">
-            LIMIT ${pageCurr}, ${pageSize}
-          </if>
-        ) t
-    , (SELECT @i:=0) AS itable
+      <if test = "bindNumber != null and bindNumber > 0">
+        AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
+      </if>
+    </where>
+    ORDER BY con.operateDt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${pageCurr}, ${pageSize}
+    </if>
+
   </select>
 
   <!--鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栨帶鍒跺櫒鍒楄〃-->
   <select id="getControllersByCode" resultType="java.util.Map">
-    SELECT id, code FROM pr_controller WHERE code LIKE CONCAT('%',#{controllerCode},'%')
+    SELECT id, rtuAddr FROM pr_controller WHERE rtuAddr LIKE CONCAT('%',#{rtuAddr},'%')
   </select>
 
   <!--鏍规嵁鎺у埗鍣ㄧ紪鍙烽�昏緫鍒犻櫎鎺у埗-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
index 446fe77..0d89673 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
@@ -259,7 +259,7 @@
   <select id="getDivides" resultType="com.dy.pipIrrGlobal.voPr.VoDivide">
     SELECT
       (@i:=@i+1) AS id,
-      divi.id AS divideId,
+      CAST(divi.id AS char) AS divideId,
       divi.name AS divideName,
       blo.`name` AS blockName,
       divi.header,
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
index 19cecd7..2914ee1 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
@@ -1,185 +1,256 @@
 <?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.PrFlowMonitoringMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
-    <!--@mbg.generated-->
-    <!--@Table pr_flow_monitoring-->
-    <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="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, `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_flow_monitoring
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from pr_flow_monitoring
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
-    <!--@mbg.generated-->
-    insert into pr_flow_monitoring (id, countyId, townId, 
-      villageId, `name`, lng, 
-      lat, remarks, `operator`, 
-      operateDt, deleted)
-    values (#{id,jdbcType=BIGINT}, #{countyid,jdbcType=BIGINT}, #{townid,jdbcType=BIGINT}, 
-      #{villageid,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.PrFlowMonitoring">
-    <!--@mbg.generated-->
-    insert into pr_flow_monitoring
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
+        <!--@mbg.generated-->
+        <!--@Table pr_flow_monitoring-->
+        <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="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="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="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.PrFlowMonitoring">
-    <!--@mbg.generated-->
-    update pr_flow_monitoring
-    <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="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.PrFlowMonitoring">
-    <!--@mbg.generated-->
-    update pr_flow_monitoring
-    set countyId = #{countyid,jdbcType=BIGINT},
-      townId = #{townid,jdbcType=BIGINT},
-      villageId = #{villageid,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_flow_monitoring
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from pr_flow_monitoring
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
 
-  <!--鏍规嵁鐩戞祴绔欑紪鍙峰垹闄ょ洃娴嬬珯-->
-  <update id="deleteFlowMonitoringById">
-    UPDATE pr_flow_monitoring SET deleted = 1 WHERE id = ${flowMonitoringId}
-  </update>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
+        <!--@mbg.generated-->
+        insert into pr_flow_monitoring (id, countyId, townId,
+                                        villageId, `name`, lng,
+                                        lat, remarks, `operator`,
+                                        operateDt, deleted)
+        values (#{id,jdbcType=BIGINT}, #{countyid,jdbcType=BIGINT}, #{townid,jdbcType=BIGINT},
+                #{villageid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE},
+                #{lat,jdbcType=DOUBLE}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT},
+                #{operatedt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT})
+    </insert>
 
-  <!--鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺-->
-  <select id="getRecordCountOfFlowMonitoring" resultType="java.lang.Integer">
-    SELECT COUNT(*) AS recordCountOfFlowMonitoring FROM pr_flow_monitoring WHERE deleted = 0 AND id = ${flowMonitoringId}
-  </select>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
+        <!--@mbg.generated-->
+        insert into pr_flow_monitoring
+        <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="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="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.PrFlowMonitoring">
+        <!--@mbg.generated-->
+        update pr_flow_monitoring
+        <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="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.PrFlowMonitoring">
+        <!--@mbg.generated-->
+        update pr_flow_monitoring
+        set countyId   = #{countyid,jdbcType=BIGINT},
+            townId     = #{townid,jdbcType=BIGINT},
+            villageId  = #{villageid,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>
+
+    <!--鏍规嵁鐩戞祴绔欑紪鍙峰垹闄ょ洃娴嬬珯-->
+    <update id="deleteFlowMonitoringById">
+        UPDATE pr_flow_monitoring
+        SET deleted = 1
+        WHERE id = ${flowMonitoringId}
+    </update>
+
+    <!--鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺-->
+    <select id="getRecordCountOfFlowMonitoringByFlowMonitoringId" resultType="java.lang.Integer">
+        SELECT COUNT(*) AS recordCountOfFlowMonitoring
+        FROM pr_flow_monitoring
+        WHERE deleted = 0
+          AND id = ${flowMonitoringId}
+    </select>
+
+    <!--鏌ヨ鍏ㄩ儴鐩戞祴绔欏疄浣撹褰�-->
+    <select id="selectAll" resultType="com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring">
+        select
+        <include refid="Base_Column_List"/>
+        from pr_flow_monitoring
+        where deleted = 0
+    </select>
+
+
+    <!--鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺-->
+    <select id="getRecordCountOfFlowMonitoring" resultType="java.lang.Integer">
+        SELECT COUNT(*) AS recordCountOfFlowMonitoring
+        from    pr_flow_monitoring pfm
+        INNER JOIN ba_district country ON pfm.countyId = country.id
+        INNER JOIN ba_district town ON pfm.townId = town.id
+        INNER JOIN ba_district village ON pfm.villageId = village.id
+        INNER JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
+        <where>
+            pfm.deleted = 0
+            <if test = "name != null and name !=''">
+                AND pfm.`name` like CONCAT('%',#{name},'%')
+            </if>
+            <if test = "bindState != null and bindState > 0">
+                AND pmofl.operateType = ${bindState}
+            </if>
+        </where>
+    </select>
+
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇娴侀噺鐩戞祴绔欏疄浣撹褰�-->
+    <select id="getPrFlowMonitoring" parameterType="map" resultType="com.dy.pipIrrGlobal.voPr.VoFlowMonitoring">
+        select (@i:=@i+1)                                           AS id,
+                CONCAT(country.`name`, town.`name`, village.`name`) AS address,
+                pfm.`name`                                          AS `name`,
+                pmofl.operateType                                   AS bindState
+        from    pr_flow_monitoring pfm
+        INNER JOIN ba_district country ON pfm.countyId = country.id
+        INNER JOIN ba_district town ON pfm.townId = town.id
+        INNER JOIN ba_district village ON pfm.villageId = village.id
+        INNER JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id,
+        (SELECT @i:=0) AS itable
+        <where>
+            pfm.deleted = 0
+            <if test = "name != null and name !=''">
+                AND pfm.`name` like CONCAT('%',#{name},'%')
+            </if>
+            <if test = "bindState != null and bindState > 0">
+                AND pmofl.operateType = ${bindState}
+            </if>
+        </where>
+        ORDER BY pmofl.operateDt DESC
+        <if test="pageCurr != null and pageSize != null">
+            LIMIT ${pageCurr}, ${pageSize}
+        </if>
+
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml
index 7af9f8a..1912ac5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml
@@ -168,7 +168,47 @@
   </update>
 
   <!--鏍规嵁娴侀噺璁$紪鍙疯幏鍙栨湭鍒犻櫎鐨勬祦閲忚鏁伴噺-->
-  <select id="getRecordCountOfFlowmeter" resultType="java.lang.Integer">
+  <select id="getRecordCountOfFlowmeterByCode" resultType="java.lang.Integer">
     SELECT COUNT(*) AS recordCountOfFlowmeter FROM pr_flowmeter WHERE deleted = 0 AND id = ${flowmeterId}
   </select>
+
+  <!--鏍规嵁娴侀噺璁$紪鍙� 鎴栬�� 鍦ㄧ嚎鐘舵�� 鑾峰彇鏈垹闄ょ殑娴侀噺璁℃暟閲� -->
+  <select id="getRecordCountOfFlowMeterByOthers" resultType="_integer">
+    SELECT COUNT(*) AS recordCountOfFlowmeter FROM pr_flowmeter
+    <where>
+    deleted = 0 AND
+      <if test="code != null">
+        code = #{code,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineState != null ">
+        onlineState = #{onlineState,jdbcType=TINYINT}
+      </if>
+  </where>
+  </select>
+
+  <!--鏍规嵁娴侀噺璁$紪鍙� 鎴栬�� 鍦ㄧ嚎鐘舵�� 鑾峰彇鏈垹闄ょ殑娴侀噺璁¤褰� -->
+  <select id="getFlowMeters" resultType="com.dy.pipIrrGlobal.voPr.VoFlowMeter">
+    select (@i:=@i+1)                                           AS id,
+      pfm.code                                                  AS code,
+      pfm.onlineState                                           AS onlineState,
+      pfmt.`name`                                               AS `name`,
+      pfm.operateDt                                             AS operateDt
+    from pr_flowmeter pfm
+    inner join pr_monitoring_flowmeter pmofl on pmofl.flowmeterId = pfm.id
+    inner join pr_flow_monitoring pfmt on pfmt.id = pmofl.monitoringId,
+    (SELECT @i:=0) AS itable
+    <where>
+      pfm.deleted = 0 AND pfmt.deleted = 0 AND pmofl.operateType = 1
+      <if test="code != null">
+        AND code = #{code,jdbcType=VARCHAR}
+      </if>
+      <if test="onlineState != null ">
+        AND onlineState = #{onlineState,jdbcType=TINYINT}
+      </if>
+    </where>
+    ORDER BY pfm.operateDt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${pageCurr}, ${pageSize}
+    </if>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml
index 4c63f19..2c63ca8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml
@@ -16,6 +16,10 @@
     <!--@mbg.generated-->
     id, monitoringId, flowmeterId, operateType, remarks, `operator`, operateDt
   </sql>
+  <sql id="Base_Column_List_NoId">
+    <!--@mbg.generated-->
+    monitoringId, flowmeterId, operateType, remarks, `operator`, operateDt
+  </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
     select 
@@ -143,4 +147,15 @@
       </if>
     </where>
   </select>
+
+  <!--鏍规嵁 娴侀噺鐩戞祴绔欑紪鍙� 鑾峰彇 缁戝畾璁板綍 鎸夋搷浣滄椂闂撮檷搴�-->
+  <select id="getBingRecordsByMonitoringId" parameterType="_long" resultType="java.util.Map">
+    select  (@i:=@i+1)                                           AS id,
+    <include refid="Base_Column_List_NoId" />
+    from pr_monitoring_flowmeter
+    ,(SELECT @i:=0) AS itable
+    where
+    monitoringId=#{monitoringId,jdbcType=BIGINT}
+    order by operateDt desc
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java
index 60cce2a..ed76f2d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrBase.role;
 
+import com.alibaba.fastjson2.JSONArray;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.mybatis.envm.Deleted;
 import com.dy.common.webUtil.BaseResponse;
@@ -62,12 +63,16 @@
     @SsoAop()
     public BaseResponse<QueryResultVo<List<VoRole>>> getRoles(QueryVo vo){
         try {
+            //BaRolePermissions baRolePermissions = roleSv.getRolePermissionsById(2023122018334500002L);
+            //return BaseResponseUtils.buildSuccess(baRolePermissions);
+
             QueryResultVo<List<VoRole>> res = roleSv.getRoles(vo);
             if(res.itemTotal != null && res.itemTotal > 0) {
                 return BaseResponseUtils.buildSuccess(res);
             }else {
                 return BaseResponseUtils.buildFail(SystemResultCode.NO_ROLES.getMessage());
             }
+
         } catch (Exception e) {
             log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
@@ -99,7 +104,7 @@
 
         // 鑾峰彇瑙掕壊鍚嶇О绾ф潈闄愬垪琛�
         String roleName = Optional.ofNullable(po.getRoleName()).orElse("");
-        String permissions = Optional.ofNullable(po.getPermissions()).orElse("");
+        JSONArray permissions = Optional.ofNullable(JSONArray.parseArray(po.getPermissions())).orElse(JSONArray.parseArray("[]"));
         Long operator = Optional.ofNullable(po.getOperator()).orElse(0L);
 
         // 鍒ゆ柇瑙掕壊鍚嶇О鏄惁閲嶅悕
@@ -125,7 +130,7 @@
             return BaseResponseUtils.buildFail(SystemResultCode.ADD_ROLE_FAIL.getMessage());
 
         // 娣诲姞鏉冮檺鍒楄〃
-        BaRolePermissions  baRolePermissions = new BaRolePermissions();
+        BaRolePermissions baRolePermissions = new BaRolePermissions();
         baRolePermissions.setRoleid(roleId);
         baRolePermissions.setPermissions(permissions);
         Integer rc = Optional.ofNullable(roleSv.addPermissions(baRolePermissions)).orElse(0);
@@ -170,7 +175,8 @@
 
         Long roleId = Optional.ofNullable(po.getRoleid()).orElse(0L);
         String roleName = Optional.ofNullable(po.getRoleName()).orElse("");
-        String permissions = Optional.ofNullable(po.getPermissions()).orElse("");
+        //String permissions = Optional.ofNullable(po.getPermissions()).orElse("");
+        JSONArray permissions = Optional.ofNullable(JSONArray.parseArray(po.getPermissions())).orElse(JSONArray.parseArray("[]"));
         Long operator = Optional.ofNullable(po.getOperator()).orElse(0L);
 
         if(roleId == 0 && roleName.length() == 0)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleSv.java
index be9c7e8..0947d23 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleSv.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrBase.role;
 
+import com.alibaba.fastjson2.JSONArray;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoBa.BaRoleMapper;
 import com.dy.pipIrrGlobal.daoBa.BaRolePermissionsMapper;
@@ -11,8 +12,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * @author ZhuBaoMin
@@ -52,9 +55,10 @@
     public QueryResultVo<List<VoRole>> getRoles(QueryVo queryVo) {
         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
 
-        Long itemTotal = baRoleMapper.getRecordCount(params);
+        Long itemTotal = baRolePermissionsMapper.getRecordCount(params);
 
         QueryResultVo<List<VoRole>> rsVo = new QueryResultVo<>() ;
+
         Integer pageCurr = 0;
         Integer pageSize = 10000;
         rsVo.pageCurr = 1;
@@ -69,10 +73,34 @@
         params.put("pageSize", pageSize);
 
         rsVo.calculateAndSet(itemTotal, params);
-        rsVo.obj = baRoleMapper.getRoles(params);
+        //rsVo.obj = baRoleMapper.getRoles(params);
+
+        /**
+         * 鑾峰彇瑙掕壊鍒楄〃锛屾妸姹楄鑹叉潈闄怚D
+         * 閬嶅巻瑙掕壊鍒楄〃骞跺彇鍑鸿鑹插璞′腑鐨刾erId
+         * 鏍规嵁perId鑾峰彇鏉冮檺瀵硅薄锛屽苟灏嗗璞℃坊鍔犲埌瑙掕壊瀵硅薄涓�
+         */
+        List<VoRole> list_Roles = Optional.ofNullable(baRolePermissionsMapper.getRoles(params)).orElse(new ArrayList<>());
+        if(list_Roles.size() > 0) {
+            for(int i = 0; i < list_Roles.size(); i++) {
+                VoRole voRole = list_Roles.get(i);
+                Long perId = voRole.getPerId();
+                BaRolePermissions baRolePermissions = baRolePermissionsMapper.selectByPrimaryKey(perId);
+                JSONArray array_permission = JSONArray.parseArray("[]");
+                if(baRolePermissions != null) {
+                    array_permission = baRolePermissions.getPermissions();
+                }
+                voRole.setPermissions(array_permission);
+            }
+        }
+        rsVo.obj = list_Roles;
         return rsVo ;
     }
 
+    public BaRolePermissions getRolePermissionsById(Long id) {
+        return baRolePermissionsMapper.selectByPrimaryKey(id);
+    }
+
     /**
      * 寰楀埌鎵�鏈夎鑹�
      * @return 鎵�鏈夎鑹查泦鍚�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java
index 5735c8f..b698813 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java
@@ -18,12 +18,12 @@
     public static final long serialVersionUID = 1L;
 
     /**
-     * 缂栧彿
+     * 鎺у埗鍣ㄥ湴鍧�
      */
-    @Schema(description = "缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotBlank(message = "鎺у埗鍣ㄧ紪鍙蜂笉鑳戒负绌�")
-    @Length(message = "鎺у埗鍣ㄧ紪鍙蜂笉澶т簬{max}瀛�",max = 25)
-    private String code;
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鎺у埗鍣ㄥ湴鍧�涓嶈兘涓虹┖")
+    @Length(message = "鎺у埗鍣ㄥ湴鍧�涓嶅ぇ浜巤max}瀛�",max = 11)
+    private String rtuAddr;
 
     /**
      * 閫氳鍗忚
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java
index bf8a034..554a3fb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java
@@ -15,7 +15,7 @@
 @Mapper
 public interface DtoToPojo {
     DtoToPojo INSTANCT = Mappers.getMapper(DtoToPojo.class);
-    @Mapping(target = "code", source = "code")
+    @Mapping(target = "rtuaddr", source = "rtuAddr")
     @Mapping(target = "protocol", source = "protocol")
     @Mapping(target = "onlinestate", source = "onlineState")
     @Mapping(target = "addways", source = "addWays")
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java
index bef9203..a5399b5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java
@@ -3,10 +3,15 @@
 import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
 import com.dy.pipIrrProject.result.ProjectResultCode;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -17,10 +22,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
 
@@ -114,4 +116,133 @@
         }
         return BaseResponseUtils.buildSuccess(true) ;
     }
+
+    /**
+     * 缂栬緫淇敼鐩戞祴绔�
+     * @param po 淇濆瓨鐩戞祴绔檉orm琛ㄥ崟瀵硅薄
+     * @return 鏄惁鎴愬姛
+     */
+    @Operation(summary = "缂栬緫淇敼鐩戞祴绔�", description = "鎻愪氦鐩戞祴绔欐暟鎹紙form琛ㄥ崟锛夛紝杩涜淇敼")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid PrFlowMonitoring po, @Parameter(hidden = true) BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        // 鎺ユ敹鏉戠紪鍙凤紙涓婚敭锛�
+        Long villageId = po.getVillageid();
+        /**
+         * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
+         */
+        Map map_districts = Optional.ofNullable(flowMonitoringSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
+        if(map_districts.size() <= 0) {
+            return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+        }
+        Long countryId = Long.parseLong(map_districts.get("countryId").toString());
+        Long townId = Long.parseLong(map_districts.get("townId").toString());
+        po.setCountyid(countryId);
+        po.setTownid(townId);
+        int count;
+        Date operateTime = new Date();
+        po.setOperatedt(operateTime);
+        po.setDeleted((byte)0);
+        try {
+            count = this.flowMonitoringSv.update(po);
+        } catch (Exception e) {
+            log.error("淇濆瓨鐩戞祴绔欏紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+        if(count <= 0){
+            return BaseResponseUtils.buildFail(ProjectResultCode.UPDATE_FLOW_MONITORING_FAIL.getMessage()) ;
+        }else{
+            return BaseResponseUtils.buildSuccess(true) ;
+        }
+    }
+
+    /**
+     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌洃娴嬬珯鍚嶅瓧
+     * @return 鎵�鏈夌洃娴嬬珯鍚嶅瓧
+     */
+    @Operation(summary = "鑾峰緱鍏ㄩ儴鐩戞祴绔�", description = "杩斿洖鍏ㄩ儴鐩戞祴绔欐暟鎹�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖鍏ㄩ儴鐩戞祴绔欐暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrFlowMonitoring.class))}
+            )
+    })
+    @GetMapping(path = "all")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<PrFlowMonitoring>>> all(){
+        try {
+            QueryResultVo<List<PrFlowMonitoring>> res = this.flowMonitoringSv.selectAll();
+            if(res == null) {
+                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
+            }else {
+                return BaseResponseUtils.buildSuccess(res);
+            }
+        } catch (Exception e) {
+            log.error("鏌ヨ鐩戞祴绔欏紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    /**
+     * 寰楀埌涓�涓洃娴嬬珯鏁版嵁
+     * @return 涓�涓洃娴嬬珯鏁版嵁
+     */
+    @Operation(summary = "涓�涓洃娴嬬珯", description = "寰楀埌涓�涓洃娴嬬珯鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�涓洃娴嬬珯鏁版嵁锛圔aseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrFlowMonitoring.class))}
+            )
+    })
+    @GetMapping(path = "one/{id}")
+    @SsoAop()
+    public BaseResponse<PrFlowMonitoring> one(@PathVariable("id") Long id){
+        if(this.flowMonitoringSv.selectById(id) == null) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
+        }else {
+            return BaseResponseUtils.buildSuccess(this.flowMonitoringSv.selectById(id));
+        }
+    }
+
+    @Operation(summary = "鑾峰緱涓�椤电洃娴嬬珯璁板綍", description = "杩斿洖涓�椤电洃娴嬬珯鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤电洃娴嬬珯鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrFlowMonitoring.class))}
+            )
+    })
+    @GetMapping(path = "getFlowMonitoring", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoFlowMonitoring>>> getFlowMonitoring(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) QueryVo vo){
+        try {
+            QueryResultVo<List<VoFlowMonitoring>> res = flowMonitoringSv.getPrFlowMonitorings(vo);
+            if(res == null) {
+                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鐩戞祴绔欒褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java
index 08ff400..de0dd7d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java
@@ -1,12 +1,18 @@
 package com.dy.pipIrrProject.flowMonitoring;
 
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper;
 import com.dy.pipIrrGlobal.daoPr.PrFlowMonitoringMapper;
 import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voPr.VoDivide;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -57,8 +63,67 @@
      * @param flowMonitoringId 娴侀噺鐩戞祴绔欑紪鍙�
      * @return
      */
-    public Integer getRecordCountOfFlowMonitoring(Long flowMonitoringId) {
-        return prFlowMonitoringMapper.getRecordCountOfFlowMonitoring(flowMonitoringId);
+    public Integer getRecordCountOfFlowMonitoringByFlowMonitoringId(Long flowMonitoringId) {
+        return prFlowMonitoringMapper.getRecordCountOfFlowMonitoringByFlowMonitoringId(flowMonitoringId);
     }
 
+    /**
+     * 寰楀埌涓�涓祦閲忕洃娴嬬珯
+     * @param id 鐩戞祴绔橧D
+     * @return 鐩戞祴绔欏疄浣�
+     */
+    public PrFlowMonitoring selectById(Long id) {
+        return prFlowMonitoringMapper.selectByPrimaryKey(id);
+    }
+
+    /**
+     * 寰楀埌鍏ㄩ儴娴侀噺鐩戞祴绔�
+     * @return 鐩戞祴绔欏疄浣撻泦鍚�
+     */
+    public QueryResultVo<List<PrFlowMonitoring>> selectAll(){
+        QueryResultVo<List<PrFlowMonitoring>> rsVo = new QueryResultVo<>() ;
+        rsVo.obj = this.prFlowMonitoringMapper.selectAll() ;
+        return rsVo ;
+    }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢寰楀埌娴侀噺鐩戞祴绔欏疄浣撹褰�
+     * @param queryVo 缁欑殑鏉′欢
+     * @return 鐩戞祴绔欏疄浣撻泦鍚�
+     */
+    public QueryResultVo<List<VoFlowMonitoring>> getPrFlowMonitorings(QueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
+
+        QueryResultVo<List<VoFlowMonitoring>> rsVo = new QueryResultVo<>() ;
+
+        Integer pageCurr = 0;
+        Integer pageSize = 10000;
+        rsVo.pageCurr = 1;
+        rsVo.pageSize = 10000;
+        if(queryVo.pageSize != null && queryVo.pageCurr != null) {
+            rsVo.pageSize = queryVo.pageSize ;
+            rsVo.pageCurr = queryVo.pageCurr;
+            pageSize = queryVo.pageSize ;
+            pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
+        }
+        params.put("pageCurr", pageCurr);
+        params.put("pageSize", pageSize);
+
+        // 璁$畻绗﹀悎鏉′欢鐨勮褰曟暟
+        Integer itemTotal = prFlowMonitoringMapper.getRecordCountOfFlowMonitoring(params);
+        rsVo.calculateAndSet(itemTotal.longValue(), params);
+        rsVo.obj = prFlowMonitoringMapper.getPrFlowMonitoring(params);
+
+        return rsVo ;
+    }
+
+    /**
+     * 淇濆瓨淇敼涓�涓祦閲忕洃娴嬬珯瀹炰綋
+     * @param po 淇敼鐨勫唴瀹癸紙id涓嶄负绌�)
+     * @return
+     */
+    public int update (PrFlowMonitoring po){
+        return prFlowMonitoringMapper.updateByPrimaryKeySelective(po);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java
index 322df4d..96513c4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java
@@ -3,10 +3,15 @@
 import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
 import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
 import com.dy.pipIrrProject.result.ProjectResultCode;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -17,15 +22,9 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -37,7 +36,7 @@
 @Slf4j
 @Tag(name = "娴侀噺鐩戞祴绔欑鐞�", description = "娴侀噺鐩戞祴绔欐搷浣�")
 @RestController
-@RequestMapping(path="flowmeter")
+@RequestMapping(path = "flowmeter")
 @RequiredArgsConstructor
 public class FlowmeterCtrl {
     private final FlowmeterSv flowmeterSv;
@@ -53,25 +52,26 @@
     })
     @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid DtoFlowmeter po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> add(@RequestBody @Valid DtoFlowmeter po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         PrFlowmeter prFlowmeter = DtoToFlowmeterPojo.INSTANCT.po2vo(po);
         Date operateTime = new Date();
         prFlowmeter.setOperatedt(operateTime);
-        prFlowmeter.setDeleted((byte)0);
+        prFlowmeter.setDeleted((byte) 0);
         prFlowmeter.setReporttime(operateTime);
         Integer rec = Optional.ofNullable(flowmeterSv.addFlowmeter(prFlowmeter)).orElse(0);
-        if(rec == 0) {
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.ADD_FLOWMETER_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     /**
      * 鍒犻櫎娴侀噺璁�
+     *
      * @param map
      * @return
      */
@@ -86,16 +86,40 @@
     })
     @PostMapping(path = "delete")
     @SsoAop()
-    public BaseResponse<Boolean> delete(@RequestBody Map map){
-        if(map == null || map.size() <=0) {
+    public BaseResponse<Boolean> delete(@RequestBody Map map) {
+        if (map == null || map.size() <= 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.PLEASE_INPUT_FLOW_MONITORING_ID.getMessage());
         }
 
         Long flowmeterId = Long.parseLong(map.get("flowmeterId").toString());
         Integer recordCount = Optional.ofNullable(flowmeterSv.deleteFlowmeter(flowmeterId)).orElse(0);
-        if(recordCount == 0) {
+        if (recordCount == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_FLOWMETER_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    @Operation(summary = "鑾峰緱涓�椤垫祦閲忚璁板綍", description = "杩斿洖涓�椤垫祦閲忚鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤垫祦閲忚鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrFlowmeter.class))}
+            )
+    })
+    @GetMapping(path = "getFlowMeters", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoFlowMeter>>> getFlowMeters(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) QueryVoFlowMeter vo) {
+        try {
+            QueryResultVo<List<VoFlowMeter>> res = flowmeterSv.getFlowMeters(vo);
+            if (res == null) {
+                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOWMETERS.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇娴侀噺璁¤褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java
index 84b38f9..92cab8d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java
@@ -1,10 +1,17 @@
 package com.dy.pipIrrProject.flowMonitoring;
 
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoPr.PrFlowmeterMapper;
 import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMeter;
+import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -42,7 +49,39 @@
      * @param flowmeterId
      * @return
      */
-    public Integer getRecordCountOfFlowmeter(Long flowmeterId) {
-        return prFlowmeterMapper.getRecordCountOfFlowmeter(flowmeterId);
+    public Integer getRecordCountOfFlowmeterByCode(Long flowmeterId) {
+        return prFlowmeterMapper.getRecordCountOfFlowmeterByCode(flowmeterId);
+    }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢寰楀埌娴侀噺璁″疄浣撹褰�
+     * @param queryVo 缁欑殑鏉′欢
+     * @return 娴侀噺璁″疄浣撻泦鍚�
+     */
+    public QueryResultVo<List<VoFlowMeter>> getFlowMeters(QueryVoFlowMeter queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
+
+        QueryResultVo<List<VoFlowMeter>> rsVo = new QueryResultVo<>() ;
+
+        Integer pageCurr = 0;
+        Integer pageSize = 10000;
+        rsVo.pageCurr = 1;
+        rsVo.pageSize = 10000;
+        if(queryVo.pageSize != null && queryVo.pageCurr != null) {
+            rsVo.pageSize = queryVo.pageSize ;
+            rsVo.pageCurr = queryVo.pageCurr;
+            pageSize = queryVo.pageSize ;
+            pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
+        }
+        params.put("pageCurr", pageCurr);
+        params.put("pageSize", pageSize);
+
+        // 璁$畻绗﹀悎鏉′欢鐨勮褰曟暟
+        Integer itemTotal = prFlowmeterMapper.getRecordCountOfFlowMeterByOthers(params);
+        rsVo.calculateAndSet(itemTotal.longValue(), params);
+        rsVo.obj = prFlowmeterMapper.getFlowMeters(params);
+
+        return rsVo ;
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java
index 1748b64..a2c12df 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java
@@ -4,6 +4,7 @@
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
 import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
 import com.dy.pipIrrProject.result.ProjectResultCode;
 import io.swagger.v3.oas.annotations.Operation;
@@ -18,14 +19,9 @@
 import org.springframework.http.MediaType;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -37,7 +33,7 @@
 @Slf4j
 @Tag(name = "娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈绠$悊", description = "娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈鎿嶄綔")
 @RestController
-@RequestMapping(path="moni_flow")
+@RequestMapping(path = "moni_flow")
 @RequiredArgsConstructor
 public class MoniFlowCtrl {
     private final MoniFlowSv moniFlowSv;
@@ -47,9 +43,10 @@
 
     /**
      * 娴侀噺鐩戞祴绔欑粦瀹氭祦閲忚
-     *      鑻ユ祦閲忕洃娴嬬珯鎴栨祦閲忚涓嶅瓨鍦ㄩ渶鎻愮ず鐢ㄦ埛
-     *      鑻ユ祦閲忕洃娴嬬珯宸茬粡涓庢祦閲忚缁戝畾闇�鎻愮ず鐢ㄦ埛
-     * @param po 缁戝畾鍏崇郴瀵硅薄
+     * 鑻ユ祦閲忕洃娴嬬珯鎴栨祦閲忚涓嶅瓨鍦ㄩ渶鎻愮ず鐢ㄦ埛
+     * 鑻ユ祦閲忕洃娴嬬珯宸茬粡涓庢祦閲忚缁戝畾闇�鎻愮ず鐢ㄦ埛
+     *
+     * @param po            缁戝畾鍏崇郴瀵硅薄
      * @param bindingResult
      * @return
      */
@@ -65,34 +62,34 @@
     @PostMapping(path = "bind", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> bind(@RequestBody @Valid DtoMoniFlow po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> bind(@RequestBody @Valid DtoMoniFlow po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇娴侀噺鐩戞祴绔欍�佹祦閲忚鏈垹闄よ褰曟暟
-        Integer recFlowMonitoring = Optional.ofNullable(flowMonitoringSv.getRecordCountOfFlowMonitoring(po.getMonitoringId())).orElse(0);
-        Integer recFlowmeter = Optional.ofNullable(flowmeterSv.getRecordCountOfFlowmeter(po.getFlowmeterId())).orElse(0);
-        if(recFlowMonitoring == 0 || recFlowmeter == 0) {
+        Integer recFlowMonitoring = Optional.ofNullable(flowMonitoringSv.getRecordCountOfFlowMonitoringByFlowMonitoringId(po.getMonitoringId())).orElse(0);
+        Integer recFlowmeter = Optional.ofNullable(flowmeterSv.getRecordCountOfFlowmeterByCode(po.getFlowmeterId())).orElse(0);
+        if (recFlowMonitoring == 0 || recFlowmeter == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.STATION_OR_FLOWMETER_NO_EXIST.getMessage());
         }
 
         // 鏍规嵁缂栧彿鑾峰彇宸茬粦瀹氭暟閲�
-        Integer recordCount = Optional.ofNullable(moniFlowSv.getBindRecordCount(po.getMonitoringId(), po.getFlowmeterId(), (byte)1)).orElse(0);
-        if(recordCount > 0) {
+        Integer recordCount = Optional.ofNullable(moniFlowSv.getBindRecordCount(po.getMonitoringId(), po.getFlowmeterId(), (byte) 1)).orElse(0);
+        if (recordCount > 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_HAS_BINDED_FLOWMETER.getMessage());
         }
 
         PrMonitoringFlowmeter prMonitoringFlowmeter = DtoToMoniFlowPojo.INSTANCT.po2vo(po);
         Date operateTime = new Date();
-        prMonitoringFlowmeter .setOperatedt(operateTime);
-        prMonitoringFlowmeter.setOperatetype((byte)1);
+        prMonitoringFlowmeter.setOperatedt(operateTime);
+        prMonitoringFlowmeter.setOperatetype((byte) 1);
 
         Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
-        if(rec == 0) {
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     @Operation(summary = "娣诲姞瑙g粦璁板綍", description = "娣诲姞瑙g粦璁板綍")
@@ -107,33 +104,63 @@
     @PostMapping(path = "unbind", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoMoniFlow po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoMoniFlow po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇娴侀噺鐩戞祴绔欍�佹祦閲忚鏈垹闄よ褰曟暟
-        Integer recFlowMonitoring = Optional.ofNullable(flowMonitoringSv.getRecordCountOfFlowMonitoring(po.getMonitoringId())).orElse(0);
-        Integer recFlowmeter = Optional.ofNullable(flowmeterSv.getRecordCountOfFlowmeter(po.getFlowmeterId())).orElse(0);
-        if(recFlowMonitoring == 0 || recFlowmeter == 0) {
+        Integer recFlowMonitoring = Optional.ofNullable(flowMonitoringSv.getRecordCountOfFlowMonitoringByFlowMonitoringId(po.getMonitoringId())).orElse(0);
+        Integer recFlowmeter = Optional.ofNullable(flowmeterSv.getRecordCountOfFlowmeterByCode(po.getFlowmeterId())).orElse(0);
+        if (recFlowMonitoring == 0 || recFlowmeter == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.STATION_OR_FLOWMETER_NO_EXIST.getMessage());
         }
 
         // 鏍规嵁缂栧彿鑾峰彇宸茬粦瀹氭暟閲�
-        Integer recordCount = Optional.ofNullable(moniFlowSv.getBindRecordCount(po.getMonitoringId(), po.getFlowmeterId(), (byte)2)).orElse(0);
-        if(recordCount > 0) {
+        Integer recordCount = Optional.ofNullable(moniFlowSv.getBindRecordCount(po.getMonitoringId(), po.getFlowmeterId(), (byte) 2)).orElse(0);
+        if (recordCount > 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.STATION_FLOWMETER_HAS_UNBOUND.getMessage());
         }
 
         PrMonitoringFlowmeter prMonitoringFlowmeter = DtoToMoniFlowPojo.INSTANCT.po2vo(po);
         Date operateTime = new Date();
-        prMonitoringFlowmeter .setOperatedt(operateTime);
-        prMonitoringFlowmeter.setOperatetype((byte)1);
+        prMonitoringFlowmeter.setOperatedt(operateTime);
+        prMonitoringFlowmeter.setOperatetype((byte) 1);
 
         Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
-        if(rec == 0) {
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栫粦瀹氳褰� 鎸夋搷浣滄椂闂撮檷搴�
+     *
+     * @param monitoringId 鐩戞祴绔欑紪鍙�
+     * @return 缁戝畾璁板綍
+     */
+    @Operation(summary = "鑾峰彇缁戝畾璁板綍", description = "杩斿洖鑾峰彇缁戝畾璁板綍")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖缁戝畾璁板綍锛圔aseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrMonitoringFlowmeter.class))}
+            )
+    })
+    @GetMapping(path = "bingRecords/{monitoringId}")
+    @SsoAop()
+    public BaseResponse<List<Map<String, Object>>> getBingRecordsByMonitoringId(@PathVariable("monitoringId") Long monitoringId) {
+        try {
+            List<Map<String, Object>> list = Optional.ofNullable(moniFlowSv.getBingRecordsByMonitoringId(monitoringId)).orElse(new ArrayList<>());
+            if (list.size() <= 0) {
+                return BaseResponseUtils.buildFail(ProjectResultCode.NO_MONITORING_FLOWMETERS.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(list);
+        } catch (Exception e) {
+            log.error("鏌ヨ缁戝畾璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java
index 2577ae9..2c74c88 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java
@@ -6,6 +6,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author ZhuBaoMin
  * @date 2024-01-05 10:25
@@ -39,4 +42,12 @@
         return prMonitoringFlowmeterMapper.getBindRecordCount(monitoringId, flowmeterId, operateType);
     }
 
+    /**
+     * 鏍规嵁 娴侀噺鐩戞祴绔欑紪鍙� 鑾峰彇 缁戝畾璁板綍 鎸夋搷浣滄椂闂撮檷搴�
+     * @param monitoringId
+     * @return  PrMonitoringFlowmeter
+     * */
+    public List<Map<String, Object>> getBingRecordsByMonitoringId(Long monitoringId){
+        return prMonitoringFlowmeterMapper.getBingRecordsByMonitoringId(monitoringId);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/QueryVoFlowMeter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/QueryVoFlowMeter.java
new file mode 100644
index 0000000..5f131cf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/QueryVoFlowMeter.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/1/15  11:12
+ * @LastEditTime :2024/1/15  11:12
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "绠$綉娴侀噺璁℃煡璇㈡潯浠�")
+public class QueryVoFlowMeter extends QueryConditionVo {
+
+    @Schema(description = "娴侀噺璁$紪鍙�")
+    public String code;
+
+    @Schema(title = "鍦ㄧ嚎鐘舵��")
+    private Integer onlineState;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
index c1aa0bf..95b9f3b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
@@ -53,12 +53,14 @@
     FLOW_MONITORING_FAIL(50001, "娴侀噺鐩戞祴绔欐坊鍔犲け璐�"),
     PLEASE_INPUT_FLOW_MONITORING_ID(50002, "璇疯緭鍏ユ祦閲忕洃娴嬬珯缂栧彿"),
     DELETE_FLOW_MONITORING_FAIL(50003, "娴侀噺鐩戞祴绔欏垹闄ゅけ璐�"),
-
+    UPDATE_FLOW_MONITORING_FAIL(50004, "淇敼鐩戞祴绔欐暟鎹け璐�"),
+    NO_FLOW_MONITORINGS(50005, "娌℃湁绗﹀悎鏉′欢鐩戞祴绔欐暟鎹�"),
     /**
      * 娴侀噺璁�
      */
     ADD_FLOWMETER_FAIL(60001, "娴侀噺璁℃坊鍔犲け璐�"),
     DELETE_FLOWMETER_FAIL(60002, "娴侀噺璁″垹闄ゅけ璐�"),
+    NO_FLOWMETERS(60003, "娌℃湁绗﹀悎鏉′欢娴侀噺璁℃暟鎹�"),
 
     /**
      * 娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈
@@ -66,7 +68,8 @@
     MONITORING_HAS_BINDED_FLOWMETER(70001, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡缁戝畾"),
     MONITORING_FLOWMETER_BIND_FAIL(70002, "娴侀噺鐩戞祴绔欎笌娴侀噺璁$粦瀹氬け璐�"),
     STATION_OR_FLOWMETER_NO_EXIST(70003, "娴侀噺鐩戞祴绔欐垨娴侀噺璁′笉瀛樺湪"),
-    STATION_FLOWMETER_HAS_UNBOUND(70004, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡瑙g粦");
+    STATION_FLOWMETER_HAS_UNBOUND(70004, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡瑙g粦"),
+    NO_MONITORING_FLOWMETERS(70005, "娌℃湁绗﹀悎鏉′欢鐨勭粦瀹氳褰曟暟鎹�");
 
     private final Integer code;
     private final String message;

--
Gitblit v1.8.0