From 8ffdb9e3170e5ca530b652cb4600046bfb08a925 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期五, 05 一月 2024 14:37:37 +0800
Subject: [PATCH] 2024-01-05 朱宝民 流量计部分接口

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java             |   42 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java          |  101 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java |   22 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java            |   48 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java     |   25 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoFlowmeter.java           |   62 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoMoniFlow.java            |   52 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java                                     |  100 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java               |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java              |   17 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringSv.java       |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java                                   |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml                                          |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java     |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowMonitoringMapper.java                           |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java                                |   38 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToMoniFlowPojo.java      |   23 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java             |    1 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java                       |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java                           |   87 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml                                               |  174 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml                                     |  146 +++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java                  |    1 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml                                              |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                                  |    5 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java                               |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java                      |   33 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java           |  139 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java              |    6 
 29 files changed, 1,177 insertions(+), 7 deletions(-)

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 8ca15b4..9d2a020 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
@@ -57,4 +57,11 @@
      * @return
      */
     Integer deleteControllerById(@Param("controllerId") Long controllerId);
+
+    /**
+     * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栨湭鍒犻櫎鐨勬帶鍒跺櫒鏁伴噺
+     * @param controllerId
+     * @return
+     */
+    Integer getRecordCountOfController(@Param("controllerId") Long controllerId);
 }
\ No newline at end of file
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 5450e37..1c33361 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
@@ -28,4 +28,11 @@
      * @return
      */
     Integer deleteFlowMonitoringById(@Param("flowMonitoringId") Long flowMonitoringId);
+
+    /**
+     * 鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺
+     * @param flowMonitoringId
+     * @return
+     */
+    Integer getRecordCountOfFlowMonitoring(@Param("flowMonitoringId") Long flowMonitoringId);
 }
\ 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
new file mode 100644
index 0000000..e4a7ada
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java
@@ -0,0 +1,38 @@
+package com.dy.pipIrrGlobal.daoPr;
+
+import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:04
+ * @LastEditTime 2024-01-05 9:04
+ * @Description
+ */
+public interface PrFlowmeterMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PrFlowmeter record);
+
+    int insertSelective(PrFlowmeter record);
+
+    PrFlowmeter selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PrFlowmeter record);
+
+    int updateByPrimaryKey(PrFlowmeter record);
+
+    /**
+     * 鎹紪鍙峰垹闄ゆ祦閲忚
+     * @param flowmeterId
+     * @return
+     */
+    Integer deleteFlowmeterById(@Param("flowmeterId") Long flowmeterId);
+
+    /**
+     * 鏍规嵁娴侀噺璁$紪鍙疯幏鍙栨湭鍒犻櫎鐨勬祦閲忚鏁伴噺
+     * @param flowmeterId
+     * @return
+     */
+    Integer getRecordCountOfFlowmeter(@Param("flowmeterId") Long flowmeterId);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
index c12a4d2..753a980 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
@@ -4,6 +4,7 @@
 import com.dy.pipIrrGlobal.pojoPr.PrIntake;
 import com.dy.pipIrrGlobal.voPr.VoIntake;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -77,4 +78,11 @@
     List<VoIntake> getIntakes(Map<?, ?> params);
 
     Long getSupperByVillageId(long vaId);
+
+    /**
+     * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺
+     * @param intakeId
+     * @return
+     */
+    Integer getRecordCountOfIntake(@Param("intakeId") Long intakeId);
 }
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
new file mode 100644
index 0000000..f6cdffd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrGlobal.daoPr;
+
+import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:18
+ * @LastEditTime 2024-01-05 10:18
+ * @Description
+ */
+public interface PrMonitoringFlowmeterMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PrMonitoringFlowmeter record);
+
+    int insertSelective(PrMonitoringFlowmeter record);
+
+    PrMonitoringFlowmeter selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PrMonitoringFlowmeter record);
+
+    int updateByPrimaryKey(PrMonitoringFlowmeter record);
+
+    /**
+     * 鏍规嵁娴侀噺鐩戞祴绔欍�佹祦閲忚銆佹搷浣滅被鍨嬭幏鍙栬褰曟暟閲�
+     * @param monitoringId 鐩戞祴绔欑紪鍙�
+     * @param flowmeterId 娴侀噺璁$紪鍙�
+     * @param operateType 鎿嶄綔绫诲瀷 1-鎹嗙粦锛�2-瑙g粦
+     * @return 绗﹀悎鏉′欢璁板綍鏁伴噺
+     */
+    Integer getBindRecordCount(@Param("monitoringId") Long monitoringId, @Param("flowmeterId") Long flowmeterId, @Param("operateType") Byte operateType);
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..cdb8538
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java
@@ -0,0 +1,100 @@
+package com.dy.pipIrrGlobal.pojoPr;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:04
+ * @LastEditTime 2024-01-05 9:04
+ * @Description
+ */
+
+@TableName(value="pr_flowmeter", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "娴侀噺璁″疄浣�")
+public class PrFlowmeter implements BaseEntity {
+    public static final long serialVersionUID = 1L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+    * 娴侀噺璁$紪鍙�
+    */
+    @Schema(description = "娴侀噺璁$紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "娴侀噺璁$紪鍙蜂笉鑳戒负绌�")
+    @Length(message = "娴侀噺璁$紪鍙蜂笉澶т簬{max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 25)
+    private String code;
+
+    /**
+    * 閫氳鍗忚
+    */
+    @Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
+    @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25)
+    private String protocol;
+
+    /**
+    * 鍦ㄧ嚎鐘舵��;1-鍦ㄧ嚎锛�2-绂荤嚎
+    */
+    @Schema(description = "鍦ㄧ嚎鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte onlinestate;
+
+    /**
+    * 鏈�杩戜笂鎶ユ椂闂�
+    */
+    @Schema(description = "鏈�杩戜笂鎶ユ椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date reporttime;
+
+    /**
+    * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩
+    */
+    @Schema(description = "娣诲姞鏂瑰紡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte addways;
+
+    /**
+    * 鎿嶄綔浜虹紪鍙�
+    */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long operator;
+
+    /**
+    * 鎿嶄綔鏃堕棿
+    */
+    @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operatedt;
+
+    /**
+    * 澶囨敞淇℃伅
+    */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+    private String remarks;
+
+    /**
+    * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎
+    */
+    @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte deleted;
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..8f1de60
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrMonitoringFlowmeter.java
@@ -0,0 +1,87 @@
+package com.dy.pipIrrGlobal.pojoPr;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Positive;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:18
+ * @LastEditTime 2024-01-05 10:18
+ * @Description
+ */
+
+@TableName(value="pr_monitoring_flowmeter", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鐩戞祴绔欐祦閲忚鍏宠仈瀹炰綋")
+public class PrMonitoringFlowmeter implements BaseEntity {
+    public static final long serialVersionUID = 1L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+    * 鐩戞祴绔欑紪鍙�
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鐩戞祴绔欑紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鐩戞祴绔橧D涓嶈兘涓虹┖")
+    private Long monitoringid;
+
+    /**
+    * 娴侀噺璁$紪鍙�
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "娴侀噺璁$紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "娴侀噺璁D涓嶈兘涓虹┖")
+    private Long flowmeterid;
+
+    /**
+    * 鎿嶄綔绫诲瀷;1-鎹嗙粦锛�2-瑙g粦
+    */
+    @Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Max(message = "鎿嶄綔绫诲瀷鍙兘1鎴�2", value = 2)
+    @Min(message = "鎿嶄綔绫诲瀷鍙兘1鎴�2",value = 1)
+    private Byte operatetype;
+
+    /**
+    * 澶囨敞淇℃伅
+    */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200)
+    private String remarks;
+
+    /**
+    * 鎿嶄綔浜虹紪鍙�
+    */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    private Long operator;
+
+    /**
+    * 鎿嶄綔鏃堕棿
+    */
+    //@Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operatedt;
+}
\ 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 a746da5..ef5aef9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -232,4 +232,9 @@
   <update id="deleteControllerById">
     UPDATE pr_controller SET deleted = 1 WHERE id = ${controllerId}
   </update>
+
+  <!--鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栨湭鍒犻櫎鐨勬帶鍒跺櫒鏁伴噺-->
+  <select id="getRecordCountOfController" resultType="java.lang.Integer">
+    SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId}
+  </select>
 </mapper>
\ No newline at end of file
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 7764939..19cecd7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
@@ -177,4 +177,9 @@
   <update id="deleteFlowMonitoringById">
     UPDATE pr_flow_monitoring SET deleted = 1 WHERE id = ${flowMonitoringId}
   </update>
+
+  <!--鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺-->
+  <select id="getRecordCountOfFlowMonitoring" resultType="java.lang.Integer">
+    SELECT COUNT(*) AS recordCountOfFlowMonitoring FROM pr_flow_monitoring WHERE deleted = 0 AND id = ${flowMonitoringId}
+  </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
new file mode 100644
index 0000000..7af9f8a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml
@@ -0,0 +1,174 @@
+<?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.PrFlowmeterMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrFlowmeter">
+    <!--@mbg.generated-->
+    <!--@Table pr_flowmeter-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
+    <result column="onlineState" jdbcType="TINYINT" property="onlinestate" />
+    <result column="reportTime" jdbcType="TIMESTAMP" property="reporttime" />
+    <result column="addWays" jdbcType="TINYINT" property="addways" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="deleted" jdbcType="TINYINT" property="deleted" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, remarks, 
+    deleted
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from pr_flowmeter
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from pr_flowmeter
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowmeter">
+    <!--@mbg.generated-->
+    insert into pr_flowmeter (id, code, protocol, 
+      onlineState, reportTime, addWays, 
+      `operator`, operateDt, remarks, 
+      deleted)
+    values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, 
+      #{onlinestate,jdbcType=TINYINT}, #{reporttime,jdbcType=TIMESTAMP}, #{addways,jdbcType=TINYINT}, 
+      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}, 
+      #{deleted,jdbcType=TINYINT})
+  </insert>
+
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowmeter">
+    <!--@mbg.generated-->
+    insert into pr_flowmeter
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="code != null">
+        code,
+      </if>
+      <if test="protocol != null">
+        protocol,
+      </if>
+      <if test="onlinestate != null">
+        onlineState,
+      </if>
+      <if test="reporttime != null">
+        reportTime,
+      </if>
+      <if test="addways != null">
+        addWays,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operatedt != null">
+        operateDt,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="deleted != null">
+        deleted,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="code != null">
+        #{code,jdbcType=VARCHAR},
+      </if>
+      <if test="protocol != null">
+        #{protocol,jdbcType=VARCHAR},
+      </if>
+      <if test="onlinestate != null">
+        #{onlinestate,jdbcType=TINYINT},
+      </if>
+      <if test="reporttime != null">
+        #{reporttime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="addways != null">
+        #{addways,jdbcType=TINYINT},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operatedt != null">
+        #{operatedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="deleted != null">
+        #{deleted,jdbcType=TINYINT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrFlowmeter">
+    <!--@mbg.generated-->
+    update pr_flowmeter
+    <set>
+      <if test="code != null">
+        code = #{code,jdbcType=VARCHAR},
+      </if>
+      <if test="protocol != null">
+        protocol = #{protocol,jdbcType=VARCHAR},
+      </if>
+      <if test="onlinestate != null">
+        onlineState = #{onlinestate,jdbcType=TINYINT},
+      </if>
+      <if test="reporttime != null">
+        reportTime = #{reporttime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="addways != null">
+        addWays = #{addways,jdbcType=TINYINT},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operatedt != null">
+        operateDt = #{operatedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </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.PrFlowmeter">
+    <!--@mbg.generated-->
+    update pr_flowmeter
+    set code = #{code,jdbcType=VARCHAR},
+      protocol = #{protocol,jdbcType=VARCHAR},
+      onlineState = #{onlinestate,jdbcType=TINYINT},
+      reportTime = #{reporttime,jdbcType=TIMESTAMP},
+      addWays = #{addways,jdbcType=TINYINT},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operateDt = #{operatedt,jdbcType=TIMESTAMP},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      deleted = #{deleted,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鎹紪鍙峰垹闄ゆ祦閲忚-->
+  <update id="deleteFlowmeterById">
+    UPDATE pr_flowmeter SET deleted = 1 WHERE id = ${flowmeterId}
+  </update>
+
+  <!--鏍规嵁娴侀噺璁$紪鍙疯幏鍙栨湭鍒犻櫎鐨勬祦閲忚鏁伴噺-->
+  <select id="getRecordCountOfFlowmeter" resultType="java.lang.Integer">
+    SELECT COUNT(*) AS recordCountOfFlowmeter FROM pr_flowmeter WHERE deleted = 0 AND id = ${flowmeterId}
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 485f1b5..340dbb7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -291,4 +291,9 @@
     on dis_vil.supperId = dis_tow.id
     where dis_vil.id = #{vaId,jdbcType=BIGINT}
   </select>
+
+  <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺-->
+  <select id="getRecordCountOfIntake" resultType="java.lang.Integer">
+    SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
+  </select>
 </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
new file mode 100644
index 0000000..4c63f19
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml
@@ -0,0 +1,146 @@
+<?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.PrMonitoringFlowmeterMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter">
+    <!--@mbg.generated-->
+    <!--@Table pr_monitoring_flowmeter-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="monitoringId" jdbcType="BIGINT" property="monitoringid" />
+    <result column="flowmeterId" jdbcType="BIGINT" property="flowmeterid" />
+    <result column="operateType" jdbcType="TINYINT" property="operatetype" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, monitoringId, flowmeterId, operateType, remarks, `operator`, operateDt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from pr_monitoring_flowmeter
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from pr_monitoring_flowmeter
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter">
+    <!--@mbg.generated-->
+    insert into pr_monitoring_flowmeter (id, monitoringId, flowmeterId, 
+      operateType, remarks, `operator`, 
+      operateDt)
+    values (#{id,jdbcType=BIGINT}, #{monitoringid,jdbcType=BIGINT}, #{flowmeterid,jdbcType=BIGINT}, 
+      #{operatetype,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, 
+      #{operatedt,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter">
+    <!--@mbg.generated-->
+    insert into pr_monitoring_flowmeter
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="monitoringid != null">
+        monitoringId,
+      </if>
+      <if test="flowmeterid != null">
+        flowmeterId,
+      </if>
+      <if test="operatetype != null">
+        operateType,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operatedt != null">
+        operateDt,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="monitoringid != null">
+        #{monitoringid,jdbcType=BIGINT},
+      </if>
+      <if test="flowmeterid != null">
+        #{flowmeterid,jdbcType=BIGINT},
+      </if>
+      <if test="operatetype != null">
+        #{operatetype,jdbcType=TINYINT},
+      </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>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter">
+    <!--@mbg.generated-->
+    update pr_monitoring_flowmeter
+    <set>
+      <if test="monitoringid != null">
+        monitoringId = #{monitoringid,jdbcType=BIGINT},
+      </if>
+      <if test="flowmeterid != null">
+        flowmeterId = #{flowmeterid,jdbcType=BIGINT},
+      </if>
+      <if test="operatetype != null">
+        operateType = #{operatetype,jdbcType=TINYINT},
+      </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>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter">
+    <!--@mbg.generated-->
+    update pr_monitoring_flowmeter
+    set monitoringId = #{monitoringid,jdbcType=BIGINT},
+      flowmeterId = #{flowmeterid,jdbcType=BIGINT},
+      operateType = #{operatetype,jdbcType=TINYINT},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operateDt = #{operatedt,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鏍规嵁娴侀噺鐩戞祴绔欍�佹祦閲忚銆佹搷浣滅被鍨嬭幏鍙栬褰曟暟閲�-->
+  <select id="getBindRecordCount" resultType="java.lang.Integer">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM pr_monitoring_flowmeter
+    <where>
+      <if test = "monitoringId != null and monitoringId > 0">
+        AND monitoringId = ${monitoringId}
+      </if>
+
+      <if test = "flowmeterId != null and flowmeterId > 0">
+        AND flowmeterId = ${flowmeterId}
+      </if>
+
+      <if test = "operateType != null and operateType > 0">
+        AND operateType = ${operateType}
+      </if>
+    </where>
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
index 4f15979..bd9311f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
@@ -135,7 +135,6 @@
         Date operateTime = new Date();
         prController.setOperatedt(operateTime);
         prController.setDeleted((byte)0);
-        prController.setOnlinestate((byte)2);
         prController.setReporttime(operateTime);
         Integer rec = Optional.ofNullable(controllerSv.addController(prController)).orElse(0);
         if(rec == 0) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index b479db8..9a98da4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -93,4 +93,8 @@
         rsVo = prControllerMapper.getControllers(params);
         return rsVo ;
     }
+
+    public Integer getRecordCountOfController(Long controllerId) {
+        return prControllerMapper.getRecordCountOfController(controllerId);
+    }
 }
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 3ba0686..5735c8f 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
@@ -34,6 +34,12 @@
     private String protocol;
 
     /**
+     * 鍦ㄧ嚎鐘舵��
+     */
+    @Schema(description = "鍦ㄧ嚎鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte onlineState;
+
+    /**
      * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩
      */
     @Schema(description = "娣诲姞鏂瑰紡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
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 0f2c3f9..bf8a034 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
@@ -17,6 +17,7 @@
     DtoToPojo INSTANCT = Mappers.getMapper(DtoToPojo.class);
     @Mapping(target = "code", source = "code")
     @Mapping(target = "protocol", source = "protocol")
+    @Mapping(target = "onlinestate", source = "onlineState")
     @Mapping(target = "addways", source = "addWays")
     @Mapping(target = "operator", source = "operator")
     PrController po2vo(DtoController po);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoFlowmeter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoFlowmeter.java
new file mode 100644
index 0000000..4d8c785
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoFlowmeter.java
@@ -0,0 +1,62 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:33
+ * @LastEditTime 2024-01-05 9:33
+ * @Description
+ */
+
+@Data
+@Schema(name = "娴侀噺璁′紶鍏ュ璞�")
+public class DtoFlowmeter {
+    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 = 25)
+    private String protocol;
+
+    /**
+     * 鍦ㄧ嚎鐘舵��
+     */
+    @Schema(description = "鍦ㄧ嚎鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte onlineState;
+
+    /**
+     * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩
+     */
+    @Schema(description = "娣诲姞鏂瑰紡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte addWays;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    private Long operator;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+    private String remarks;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoMoniFlow.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoMoniFlow.java
new file mode 100644
index 0000000..9585d14
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoMoniFlow.java
@@ -0,0 +1,52 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Positive;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:36
+ * @LastEditTime 2024-01-05 10:36
+ * @Description 娴侀噺鐩戞祴绔欍�佹祦閲忚缁戝畾浼犲叆瀵硅薄
+ */
+
+@Data
+@Schema(name = "娴侀噺鐩戞祴绔欍�佹祦閲忚缁戝畾浼犲叆瀵硅薄")
+public class DtoMoniFlow {
+    public static final long serialVersionUID = 1L;
+
+    /**
+     * 鐩戞祴绔欑紪鍙�
+     */
+    @Schema(description = "鐩戞祴绔欑紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鐩戞祴绔橧D涓嶈兘涓虹┖")
+    private Long monitoringId;
+
+    /**
+     * 娴侀噺璁$紪鍙�
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "娴侀噺璁$紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "娴侀噺璁D涓嶈兘涓虹┖")
+    private Long flowmeterId;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java
new file mode 100644
index 0000000..32ae88f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:38
+ * @LastEditTime 2024-01-05 9:38
+ * @Description
+ */
+
+@Mapper
+public interface DtoToFlowmeterPojo {
+    DtoToFlowmeterPojo INSTANCT = Mappers.getMapper(DtoToFlowmeterPojo.class);
+    @Mapping(target = "code", source = "code")
+    @Mapping(target = "protocol", source = "protocol")
+    @Mapping(target = "onlinestate", source = "onlineState")
+    @Mapping(target = "addways", source = "addWays")
+    @Mapping(target = "operator", source = "operator")
+    @Mapping(target = "remarks", source = "remarks")
+    PrFlowmeter po2vo(DtoFlowmeter po);
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToMoniFlowPojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToMoniFlowPojo.java
new file mode 100644
index 0000000..6ac3da8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToMoniFlowPojo.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:43
+ * @LastEditTime 2024-01-05 10:43
+ * @Description 娴侀噺鐩戞祴绔欍�佹祦閲忚Dto杞琍ojo
+ */
+
+@Mapper
+public interface DtoToMoniFlowPojo {
+    DtoToMoniFlowPojo INSTANCT = Mappers.getMapper(DtoToMoniFlowPojo.class);
+    @Mapping(target = "monitoringid", source = "monitoringId")
+    @Mapping(target = "flowmeterid", source = "flowmeterId")
+    @Mapping(target = "operator", source = "operator")
+    @Mapping(target = "remarks", source = "remarks")
+    PrMonitoringFlowmeter po2vo(DtoMoniFlow po);
+}
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 897b37b..bef9203 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
@@ -55,7 +55,6 @@
             )
     })
     @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
-    //@Transactional(rollbackFor = Exception.class)
     @SsoAop()
     public BaseResponse<Boolean> add(@RequestBody @Valid PrFlowMonitoring po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
@@ -87,6 +86,11 @@
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
+    /**
+     * 鍒犻櫎娴侀噺鐩戞祴绔�
+     * @param map
+     * @return
+     */
     @Operation(summary = "鍒犻櫎娴侀噺鐩戞祴绔欒褰�", description = "鍒犻櫎娴侀噺鐩戞祴绔欒褰�")
     @ApiResponses(value = {
             @ApiResponse(
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 5cde54c..08ff400 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
@@ -51,4 +51,14 @@
     public Integer deleteFlowMonitoring(Long flowMonitoringId) {
         return prFlowMonitoringMapper.deleteFlowMonitoringById(flowMonitoringId);
     }
+
+    /**
+     * 鏍规嵁鐩戞祴绔欑紪鍙疯幏鍙栨湭鍒犻櫎鐨勭洃娴嬬珯鏁伴噺
+     * @param flowMonitoringId 娴侀噺鐩戞祴绔欑紪鍙�
+     * @return
+     */
+    public Integer getRecordCountOfFlowMonitoring(Long flowMonitoringId) {
+        return prFlowMonitoringMapper.getRecordCountOfFlowMonitoring(flowMonitoringId);
+    }
+
 }
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
new file mode 100644
index 0000000..322df4d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java
@@ -0,0 +1,101 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import com.dy.pipIrrProject.result.ProjectResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+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 java.util.Date;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:21
+ * @LastEditTime 2024-01-05 9:21
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "娴侀噺鐩戞祴绔欑鐞�", description = "娴侀噺鐩戞祴绔欐搷浣�")
+@RestController
+@RequestMapping(path="flowmeter")
+@RequiredArgsConstructor
+public class FlowmeterCtrl {
+    private final FlowmeterSv flowmeterSv;
+
+    @Operation(summary = "娣诲姞娴侀噺璁¤褰�", description = "娣诲姞娴侀噺璁¤褰�")
+    @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 = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @SsoAop()
+    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.setReporttime(operateTime);
+        Integer rec = Optional.ofNullable(flowmeterSv.addFlowmeter(prFlowmeter)).orElse(0);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.ADD_FLOWMETER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+    /**
+     * 鍒犻櫎娴侀噺璁�
+     * @param map
+     * @return
+     */
+    @Operation(summary = "鍒犻櫎娴侀噺璁¤褰�", description = "鍒犻櫎娴侀噺璁¤褰�")
+    @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 = "delete")
+    @SsoAop()
+    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) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_FLOWMETER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+}
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
new file mode 100644
index 0000000..84b38f9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java
@@ -0,0 +1,48 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.pipIrrGlobal.daoPr.PrFlowmeterMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 9:20
+ * @LastEditTime 2024-01-05 9:20
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class FlowmeterSv {
+    @Autowired
+    private PrFlowmeterMapper prFlowmeterMapper;
+
+    /**
+     * 娣诲姞娴侀噺璁�
+     * @param prFlowmeter
+     * @return
+     */
+    public Integer addFlowmeter(PrFlowmeter prFlowmeter) {
+        return prFlowmeterMapper.insert(prFlowmeter);
+    }
+
+    /**
+     * 鍒犻櫎娴侀噺璁�
+     * @param flowmeterId
+     * @return
+     */
+    public Integer deleteFlowmeter(Long flowmeterId) {
+        return prFlowmeterMapper.deleteFlowmeterById(flowmeterId);
+    }
+
+    /**
+     * 鏍规嵁娴侀噺璁$紪鍙疯幏鍙栨湭鍒犻櫎鐨勬祦閲忚鏁伴噺
+     * @param flowmeterId
+     * @return
+     */
+    public Integer getRecordCountOfFlowmeter(Long flowmeterId) {
+        return prFlowmeterMapper.getRecordCountOfFlowmeter(flowmeterId);
+    }
+}
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
new file mode 100644
index 0000000..1748b64
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java
@@ -0,0 +1,139 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
+import com.dy.pipIrrProject.result.ProjectResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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 java.util.Date;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:26
+ * @LastEditTime 2024-01-05 10:26
+ * @Description 绠$綉娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈鎺у埗绫�
+ */
+
+@Slf4j
+@Tag(name = "娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈绠$悊", description = "娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈鎿嶄綔")
+@RestController
+@RequestMapping(path="moni_flow")
+@RequiredArgsConstructor
+public class MoniFlowCtrl {
+    private final MoniFlowSv moniFlowSv;
+
+    private final FlowMonitoringSv flowMonitoringSv;
+    private final FlowmeterSv flowmeterSv;
+
+    /**
+     * 娴侀噺鐩戞祴绔欑粦瀹氭祦閲忚
+     *      鑻ユ祦閲忕洃娴嬬珯鎴栨祦閲忚涓嶅瓨鍦ㄩ渶鎻愮ず鐢ㄦ埛
+     *      鑻ユ祦閲忕洃娴嬬珯宸茬粡涓庢祦閲忚缁戝畾闇�鎻愮ず鐢ㄦ埛
+     * @param po 缁戝畾鍏崇郴瀵硅薄
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "娣诲姞缁戝畾璁板綍", description = "娣诲姞缁戝畾璁板綍")
+    @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 = "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()){
+            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) {
+            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) {
+            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);
+
+        Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+    @Operation(summary = "娣诲姞瑙g粦璁板綍", description = "娣诲姞瑙g粦璁板綍")
+    @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 = "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()){
+            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) {
+            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) {
+            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);
+
+        Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+}
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
new file mode 100644
index 0000000..2577ae9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java
@@ -0,0 +1,42 @@
+package com.dy.pipIrrProject.flowMonitoring;
+
+import com.dy.pipIrrGlobal.daoPr.PrMonitoringFlowmeterMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 10:25
+ * @LastEditTime 2024-01-05 10:25
+ * @Description 绠$綉娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈绠$悊鏈嶅姟绫�
+ */
+
+@Slf4j
+@Service
+public class MoniFlowSv {
+    @Autowired
+    private PrMonitoringFlowmeterMapper prMonitoringFlowmeterMapper;
+
+    /**
+     * 娣诲姞娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈鍏崇郴
+     * @param po
+     * @return
+     */
+    public Integer addRecord(PrMonitoringFlowmeter po) {
+        return prMonitoringFlowmeterMapper.insert(po);
+    }
+
+    /**
+     * 鏍规嵁娴侀噺鐩戞祴绔欍�佹祦閲忚銆佹搷浣滅被鍨嬭幏鍙栬褰曟暟閲�
+     * @param monitoringId 鐩戞祴绔欑紪鍙�
+     * @param flowmeterId 娴侀噺璁$紪鍙�
+     * @param operateType 鎿嶄綔绫诲瀷 1-鎹嗙粦锛�2-瑙g粦
+     * @return
+     */
+    Integer getBindRecordCount(Long monitoringId, Long flowmeterId, Byte operateType) {
+        return prMonitoringFlowmeterMapper.getBindRecordCount(monitoringId, flowmeterId, operateType);
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
index ac5cfe1..99c0fb7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
@@ -10,7 +10,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-
 import java.util.List;
 import java.util.Map;
 
@@ -131,4 +130,13 @@
     public int delete(Long id){
         return this.prIntakeMapper.deleteLogicById(id) ;
     }
+
+    /**
+     * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栨湭鍒犻櫎鐨勫彇姘村彛鏁伴噺
+     * @param intakeId
+     * @return
+     */
+    public Integer getRecordCountOfIntake(Long intakeId) {
+        return prIntakeMapper.getRecordCountOfIntake(intakeId);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
index c1aaa56..1384dfa 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -7,6 +7,8 @@
 import com.dy.common.webUtil.ResultCodeMsg;
 import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
+import com.dy.pipIrrProject.controller.ControllerSv;
+import com.dy.pipIrrProject.intake.IntakeSv;
 import com.dy.pipIrrProject.result.ProjectResultCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -38,12 +40,13 @@
 @RequiredArgsConstructor
 public class IntakeControllerCtrl {
     private final IntakeControllerSv intakeControllerSv;
+    private final IntakeSv intakeSv;
+    private final ControllerSv controllerSv;
 
     /**
      * 娣诲姞鍙栨按鍙�/鎺у埗鍣ㄦ崋缁戣褰�
-     * 1. 鍒ゆ柇鍙栨按鍙f槸鍚﹀瓨鍦�
-     * 2. 鍒ゆ柇鎺у埗鍣ㄦ槸鍚﹀瓨鍦�
-     * 3. 鍒ゆ柇鍙栨按鍙c�佹帶鍒跺櫒缁戝畾鍏崇郴鏄惁宸插瓨鍦�
+     *      鑻ュ彇姘村彛鎴栨帶鍒跺櫒涓嶅瓨鍦ㄩ渶鎻愮ず鐢ㄦ埛
+     *      鑻ュ彇姘村彛宸茬粡涓庢帶鍒跺櫒缁戝畾闇�鎻愮ず鐢ㄦ埛
      */
     @Operation(summary = "娣诲姞缁戝畾璁板綍", description = "娣诲姞缁戝畾璁板綍")
     @ApiResponses(value = {
@@ -60,6 +63,12 @@
     public BaseResponse<Boolean> bind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙c�佹帶鍒跺櫒鏈垹闄よ褰曟暟
+        Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(po.getIntakeId())).orElse(0);
+        Integer recController = Optional.ofNullable(controllerSv.getRecordCountOfController(po.getControllerId())).orElse(0);
+        if(recIntke == 0 || recController == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
         }
 
         Integer recordCount = Optional.ofNullable(intakeControllerSv.getBindRecordCount(po.getIntakeId(), po.getControllerId(), (byte)1)).orElse(0);
@@ -102,6 +111,13 @@
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
+        // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙c�佹帶鍒跺櫒鏈垹闄よ褰曟暟
+        Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(po.getIntakeId())).orElse(0);
+        Integer recController = Optional.ofNullable(controllerSv.getRecordCountOfController(po.getControllerId())).orElse(0);
+        if(recIntke == 0 || recController == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
+        }
+
         Integer recordCount = Optional.ofNullable(intakeControllerSv.getBindRecordCount(po.getIntakeId(), po.getControllerId(), (byte)2)).orElse(0);
         if(recordCount > 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_CONTROLLER_HAS_UNBOUND.getMessage());
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 c93a9d8..2de0a20 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
@@ -38,13 +38,28 @@
     INTAKE_CONTROLLER_HAS_UNBOUND(40003, "鍙栨按鍙d笌鎺у埗鍣ㄥ凡瑙g粦"),
     INTAKE_NO_RECORDS(40004, "璇ュ彇姘村彛鏃犵粦瀹氳褰�"),
     CONTROLLER_NO_RECORDS(40005, "璇ユ帶鍒跺櫒鏃犵粦瀹氳褰�"),
+    INTAKE_OR_CONTROLLER_NO_EXIST(40006, "鍙栨按鍙f垨鎺у埗鍣ㄤ笉瀛樺湪"),
 
     /**
      * 娴侀噺鐩戞祴绔�
      */
     FLOW_MONITORING_FAIL(50001, "娴侀噺鐩戞祴绔欐坊鍔犲け璐�"),
     PLEASE_INPUT_FLOW_MONITORING_ID(50002, "璇疯緭鍏ユ祦閲忕洃娴嬬珯缂栧彿"),
-    DELETE_FLOW_MONITORING_FAIL(50003, "娴侀噺鐩戞祴绔欏垹闄ゅけ璐�");
+    DELETE_FLOW_MONITORING_FAIL(50003, "娴侀噺鐩戞祴绔欏垹闄ゅけ璐�"),
+
+    /**
+     * 娴侀噺璁�
+     */
+    ADD_FLOWMETER_FAIL(60001, "娴侀噺璁℃坊鍔犲け璐�"),
+    DELETE_FLOWMETER_FAIL(60002, "娴侀噺璁″垹闄ゅけ璐�"),
+
+    /**
+     * 娴侀噺鐩戞祴绔欍�佹祦閲忚鍏宠仈
+     */
+    MONITORING_HAS_BINDED_FLOWMETER(70001, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡缁戝畾"),
+    MONITORING_FLOWMETER_BIND_FAIL(70002, "娴侀噺鐩戞祴绔欎笌娴侀噺璁$粦瀹氬け璐�"),
+    STATION_OR_FLOWMETER_NO_EXIST(70003, "娴侀噺鐩戞祴绔欐垨娴侀噺璁′笉瀛樺湪"),
+    STATION_FLOWMETER_HAS_UNBOUND(70004, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡瑙g粦");
 
     private final Integer code;
     private final String message;

--
Gitblit v1.8.0