From 819758b787fbe86fae05635ae10561468639446c Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期六, 19 十月 2024 11:58:47 +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/voRm/VoUnclosedValve.java                           |   25 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java                     |    9 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java                 |   19 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java                   |   18 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java               |   17 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                              |   15 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java               |   21 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml                                  |   76 +++++---------
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java                |   15 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/deleteUnclosedParam.java |   27 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/deleteUnclosedParam.java   |   28 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java               |    9 +
 12 files changed, 218 insertions(+), 61 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
index 0a8722f..1efa08b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -4,6 +4,7 @@
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -98,4 +99,12 @@
      * @return
      */
     Integer getCountByCloseType(Map<?, ?> params);
+
+    /**
+     * 涓烘寚瀹氾紙闃�鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+     * @param rtuAddr
+     * @param icCardNo
+     * @return
+     */
+    Integer addCloseTime(@Param("rtuAddr") String rtuAddr, @Param("icCardNo")String icCardNo);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
index e09b215..c556bf8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
@@ -1,6 +1,7 @@
 package com.dy.pipIrrGlobal.voRm;
 
 import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import lombok.Data;
 
 /**
@@ -11,22 +12,46 @@
  */
 
 @Data
+@JsonPropertyOrder({"intakeNum", "isOnLine", "rtuAddr", "vcNum", "orderNo", "state", "planned"})
 public class VoUnclosedValve implements BaseEntity {
     private static final long serialVersionUID = 202405241634001L;
 
     //private String commandCode;
 
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
     private String intakeNum;
 
+    /**
+     * 鏄惁鍦ㄧ嚎
+     */
     private Boolean isOnLine;
 
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
     private String rtuAddr;
 
+    /**
+     * 铏氭嫙鍗$紪鍙�
+     */
     private String vcNum;
 
+    /**
+     * 璁㈠崟鍙�
+     */
     private String orderNo;
 
+    /**
+     * 鐘舵��
+     */
     private String state;
 
+    /**
+     * 鏄惁璁″垝鎬у紑闃�
+     */
+    private Boolean planned;
+
     //private Date openTime;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index 7888144..98054c7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -197,55 +197,29 @@
 
     <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級-->
     <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve">
-        SELECT inta.name                  AS intakeNum,
-               rtus.isOnLine,
-               com.rtu_addr               AS rtuAddr,
-               com.param ->> '$.icCardNo' AS vcNum,
-               (SELECT param ->> '$.orderNo' AS orderNo
+        SELECT
+            inta.name AS intakeNum,
+            rtus.isOnLine,
+            com.rtu_addr AS rtuAddr,
+            com.param ->> '$.icCardNo' AS vcNum,
+            (
+                SELECT param ->> '$.orderNo' AS orderNo
                 FROM rm_command_history
                 WHERE rtu_addr = com.rtu_addr
                 ORDER BY send_time desc
-                LIMIT 0,1)                AS orderNo,
-               'toClose'                  AS state
+                LIMIT 0,1
+            ) AS orderNo,
+            'toClose'                  AS state,
+            CASE
+                WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 0
+                ELSE 0
+            END AS planned,
+            com.send_time AS sendTime
         FROM rm_command_history com
             INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr
             INNER JOIN pr_intake inta ON con.intakeId = inta.id
-            INNER JOIN JSON_TABLE(
-        <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
-        #{onLineMap},
-        '$[*]' COLUMNS (
-            rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-            isOnLine BOOLEAN PATH '$.isOnLine'
-            )
-            ) rtus ON com.rtu_addr = rtus.rtuAddr
-        <where>
-            AND (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97')
-                  AND com.operator = #{operator}
-                  AND NOT EXISTS(
-                    SELECT *
-                    FROM rm_command_history
-                    WHERE (result IS NULL OR result = 1)
-                      AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
-                      AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
-                )
-        </where>
-        GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo'
-
-        UNION ALL
-
-        SELECT inta.name                  AS intakeNum,
-               rtus.isOnLine,
-               com.rtu_addr               AS rtuAddr,
-               com.param ->> '$.icCardNo' AS vcNum,
-               (SELECT param ->> '$.orderNo' AS orderNo
-                FROM rm_command_history
-                WHERE rtu_addr = com.rtu_addr
-                ORDER BY send_time desc
-                LIMIT 0,1)                AS orderNo,
-               'toCancel'                 AS state
-        FROM rm_command_history com
-                 INNER JOIN pr_intake inta ON inta.id = com.intake_id
-                 INNER JOIN JSON_TABLE(
+            LEFT JOIN JSON_TABLE(
+<!--                '[{"rtuAddr":"620201000030","isOnLine":true}]',-->
                 #{onLineMap},
                 '$[*]' COLUMNS (
                     rtuAddr VARCHAR(20) PATH '$.rtuAddr',
@@ -253,14 +227,18 @@
                     )
             ) rtus ON com.rtu_addr = rtus.rtuAddr
         <where>
-            AND (command_code = 'A1' OR command_code = 'A2')
             AND com.operator = #{operator}
-                  AND DATE_FORMAT(
-                              CONCAT(com.param ->> '$.year', '-', com.param ->> '$.month', '-', com.param ->> '$.day',
-                                     ' ',
-                                     com.param ->> '$.hour', ':', com.param ->> '$.minute', ':', '0'),
-                              '%Y-%m-%d %H:%i:%S') > NOW()
+            AND (com.protocol = 'p206V1_0_1' AND (com.command_code = '92' OR com.command_code = '97' OR com.command_code = '99' OR com.command_code = 'A0' OR com.command_code = 'A1' OR com.command_code = 'A2'))
+            AND (
+                SELECT cl_dt FROM rm_open_close_valve_last
+                WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo'
+                ORDER BY op_dt DESC
+                LIMIT 1
+            ) IS NULL
         </where>
+        GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo', com.command_code, com.send_time
+        ORDER BY com.send_time DESC
+        LIMIT 1
     </select>
 
     <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index dd62be3..a58f814 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -473,10 +473,10 @@
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
             </if>
             <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
+                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
             </if>
             <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
+                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
     </select>
@@ -540,10 +540,10 @@
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
             </if>
             <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
+                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
             </if>
             <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
+                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
         ORDER BY oh.op_dt DESC
@@ -581,4 +581,11 @@
             </if>
         </where>
     </select>
+
+    <!--涓烘寚瀹氾紙闃�鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�-->
+    <update id="addCloseTime">
+        UPDATE rm_open_close_valve_last
+        SET cl_dt = NOW()
+        WHERE rtu_addr = #{rtuAddr} AND op_ic_card_no = #{icCardNo} AND cl_dt IS NULL
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
index 26e4ca5..26446d4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
@@ -75,7 +75,7 @@
 
                     // 娣诲姞宸℃璁板綍
                     OpeInspect opeInspect = new OpeInspect();
-                    opeInspect.setInspectorId(inspects.getInspectorId());
+                    opeInspect.setInspectorId(inspectorId);
                     if(startTime != null) {
                         opeInspect.setStartTime(startTime);
                     }
@@ -97,7 +97,23 @@
                     }
                 }else {
                     // 璇ュ贰妫�宸蹭笂浼犺繃璁板綍锛岀画浼�
+                    if(stopTime != null) {
+                        OpeInspect inspect = new OpeInspect();
+                        inspect.setId(inspectId);
+                        inspect.setStopTime(stopTime);
+                        inspectSv.updateInspect(inspect);
+                    }
 
+                    if(tracks != null && tracks.size() > 0) {
+                        for (int j = 0; j < tracks.size(); j++) {
+                            tracks.get(j).setId(idLongGenerator.generate());
+                            tracks.get(j).setInspectId(inspectId);
+                        }
+                        Integer rec = inspectSv.insertTracks(tracks);
+                        if(rec == null || rec == 0) {
+                            return BaseResponseUtils.buildErrorMsg("宸℃杞ㄨ抗娣诲姞澶辫触");
+                        }
+                    }
                 }
             }
             return BaseResponseUtils.buildSuccess() ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
index 20893a0..6d04f09 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
@@ -37,6 +37,15 @@
     }
 
     /**
+     * 淇敼宸℃璁板綍
+     * @param po
+     * @return
+     */
+    public Integer updateInspect(OpeInspect po) {
+        return opeInspectMapper.updateByPrimaryKeySelective(po);
+    }
+
+    /**
      * 鎵归噺娣诲姞宸℃杞ㄨ抗
      * @param list
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
index a4119e8..8c07568 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -11,6 +11,7 @@
 import com.dy.pipIrrGlobal.daoPr.PrIntakeVcMapper;
 import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
 import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveLastMapper;
 import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
@@ -50,6 +51,7 @@
     private final PrWaterPriceMapper prWaterPriceMapper;
     private final PrIntakeVcMapper prIntakeVcMapper;
     private final SeClientCardMapper seClientCardMapper;
+    private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper;
 
     /**
      * pro_mw锛氬睘鎬�
@@ -60,8 +62,9 @@
     private String pro_mw = "mw";
     private String key_mw = "comSendUrl";
     @Autowired
-    public CommandSv(RmCommandHistoryMapper rmCommandHistoryMapper, SeVirtualCardMapper seVirtualCardMapper, PrIntakeMapper prIntakeMapper, PrWaterPriceMapper prWaterPriceMapper, PrIntakeVcMapper prIntakeVcMapper, SeClientCardMapper seClientCardMapper, Environment env) {
+    public CommandSv(RmCommandHistoryMapper rmCommandHistoryMapper,RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper, SeVirtualCardMapper seVirtualCardMapper, PrIntakeMapper prIntakeMapper, PrWaterPriceMapper prWaterPriceMapper, PrIntakeVcMapper prIntakeVcMapper, SeClientCardMapper seClientCardMapper, Environment env) {
         this.rmCommandHistoryMapper = rmCommandHistoryMapper;
+        this.rmOpenCloseValveLastMapper = rmOpenCloseValveLastMapper;
         this.seVirtualCardMapper = seVirtualCardMapper;
         this.prIntakeMapper = prIntakeMapper;
         this.prWaterPriceMapper = prWaterPriceMapper;
@@ -145,6 +148,16 @@
     }
 
     /**
+     * 涓烘寚瀹氾紙闃�鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+     * @param rtuAddr
+     * @param icCardNo
+     * @return
+     */
+    public Integer addClostTime(String rtuAddr, String icCardNo) {
+        return rmOpenCloseValveLastMapper.addCloseTime(rtuAddr, icCardNo);
+    }
+
+    /**
      * 淇敼鍛戒护鏃ュ織璁板綍锛屽洖璋冩姤閿欐椂灏嗗懡浠よ褰曠殑鎵ц缁撴灉鏀逛负澶辫触
      * @param po
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
index 1247977..8f205cb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -23,6 +23,7 @@
 import com.dy.pipIrrRemote.common.CommandSv;
 import com.dy.pipIrrRemote.common.dto.*;
 import com.dy.pipIrrRemote.result.RemoteResultCode;
+import com.dy.pipIrrRemote.valve.dto.deleteUnclosedParam;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
@@ -1010,6 +1011,24 @@
     }
 
     /**
+     * 寮哄埗鍥犳鏈叧闃�璁板綍锛氫负鎸囧畾锛堥榾鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "deleteUnclosed", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteUnclosed(@RequestBody @Valid deleteUnclosedParam po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        commandSv.addClostTime(po.getRtuAddr(), po.getVcNum());
+        return BaseResponseUtils.buildSuccess();
+    }
+
+    /**
      * 骞冲彴杩滅▼鍏呭��
      * @param po
      * @param bindingResult
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/deleteUnclosedParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/deleteUnclosedParam.java
new file mode 100644
index 0000000..572cf54
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/dto/deleteUnclosedParam.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrRemote.valve.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-19 10:48
+ * @LastEditTime 2024-10-19 10:48
+ * @Description 鍒犻櫎鏈叧闃�璁板綍浼犲叆鍙傛暟
+ */
+
+@Data
+public class deleteUnclosedParam {
+    public static final long serialVersionUID = 202410191049001L;
+
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
+    @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
+    private String rtuAddr;
+
+    /**
+     * 铏氭嫙鍗$紪鍙�
+     */
+    @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
+    private String vcNum;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
index 6703fde..289bacb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -12,6 +12,7 @@
 import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
 import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
 import com.dy.pipIrrGlobal.daoRm.RmIrrigateProfileMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveLastMapper;
 import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
@@ -49,6 +50,7 @@
     private final PrIntakeVcMapper prIntakeVcMapper;
     private final SeClientCardMapper seClientCardMapper;
     private final RmIrrigateProfileMapper rmIrrigateProfileMapper;
+    private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper;
 
     /**
      * pro_mw锛氬睘鎬�
@@ -59,8 +61,9 @@
     private String pro_mw = "mw";
     private String key_mw = "comSendUrl";
     @Autowired
-    public CommandSv(RmCommandHistoryMapper rmCommandHistoryMapper, SeVirtualCardMapper seVirtualCardMapper, PrIntakeMapper prIntakeMapper, PrWaterPriceMapper prWaterPriceMapper, PrIntakeVcMapper prIntakeVcMapper, SeClientCardMapper seClientCardMapper, RmIrrigateProfileMapper rmIrrigateProfileMapper, Environment env) {
+    public CommandSv(RmCommandHistoryMapper rmCommandHistoryMapper,RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper, SeVirtualCardMapper seVirtualCardMapper, PrIntakeMapper prIntakeMapper, PrWaterPriceMapper prWaterPriceMapper, PrIntakeVcMapper prIntakeVcMapper, SeClientCardMapper seClientCardMapper, RmIrrigateProfileMapper rmIrrigateProfileMapper, Environment env) {
         this.rmCommandHistoryMapper = rmCommandHistoryMapper;
+        this.rmOpenCloseValveLastMapper = rmOpenCloseValveLastMapper;
         this.seVirtualCardMapper = seVirtualCardMapper;
         this.prIntakeMapper = prIntakeMapper;
         this.prWaterPriceMapper = prWaterPriceMapper;
@@ -111,7 +114,7 @@
                 jsonArray.add(jsonObject);
             }
 
-            System.out.println(jsonArray);
+            System.out.println(jsonArray.toJSONString());
             List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
             if(res != null) {
                 return res;
@@ -125,6 +128,16 @@
     }
 
     /**
+     * 涓烘寚瀹氾紙闃�鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+     * @param rtuAddr
+     * @param icCardNo
+     * @return
+     */
+    public Integer addClostTime(String rtuAddr, String icCardNo) {
+        return rmOpenCloseValveLastMapper.addCloseTime(rtuAddr, icCardNo);
+    }
+
+    /**
      * 鏍规嵁鍙栨按鍙D鑾峰彇涓庝箣缁戝畾铏氭嫙鍗D
      * @param intakeId
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
index c88ecf0..974622e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -19,10 +19,7 @@
 import com.dy.pipIrrGlobal.voRm.VoIrrigaterProfile;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
-import com.dy.pipIrrWechat.command.dto.AutomaticClose;
-import com.dy.pipIrrWechat.command.dto.Recharge;
-import com.dy.pipIrrWechat.command.dto.ValveClose;
-import com.dy.pipIrrWechat.command.dto.ValveOpen;
+import com.dy.pipIrrWechat.command.dto.*;
 import com.dy.pipIrrWechat.result.WechatResultCode;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.Valid;
@@ -778,6 +775,22 @@
     }
 
     /**
+     * 寮哄埗鍥犳鏈叧闃�璁板綍锛氫负鎸囧畾锛堥榾鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "deleteUnclosed", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public BaseResponse<Boolean> deleteUnclosed(@RequestBody @Valid deleteUnclosedParam po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        commandSv.addClostTime(po.getRtuAddr(), po.getVcNum());
+        return BaseResponseUtils.buildSuccess();
+    }
+
+    /**
      * 灏忕▼搴忚繙绋嬪厖鍊�
      * @param po
      * @param bindingResult
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/deleteUnclosedParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/deleteUnclosedParam.java
new file mode 100644
index 0000000..a9153a9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/dto/deleteUnclosedParam.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrWechat.command.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-19 11:07
+ * @LastEditTime 2024-10-19 11:07
+ * @Description 鍒犻櫎鏈叧闃�璁板綍浼犲叆鍙傛暟
+ */
+@Data
+public class deleteUnclosedParam {
+    public static final long serialVersionUID = 202410191108001L;
+
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
+    @NotBlank(message = "闃�鎺у櫒鍦板潃涓嶈兘涓虹┖")
+    private String rtuAddr;
+
+    /**
+     * 铏氭嫙鍗$紪鍙�
+     */
+    @NotBlank(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
+    private String vcNum;
+}

--
Gitblit v1.8.0