From 2b3defc58765bdd126901b809448868a5f8feb3c Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 29 五月 2024 15:12:56 +0800
Subject: [PATCH] 2024-05-29 朱宝民

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java            |    2 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java  |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java    |    6 +-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml                   |   29 +++++++++-----
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java |   47 ++++++++++++++++++-----
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java      |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java    |   10 +++--
 7 files changed, 69 insertions(+), 29 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
index e4db94c..a38de92 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -4,6 +4,7 @@
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -29,9 +30,10 @@
     int updateByPrimaryKey(RmCommandHistory record);
 
     /**
-     * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍
-     * @param operator 鎿嶄綔鍛業D
-     * @return 鏈叧闃�璁板綍
+     * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級
+     * @param onLineMap
+     * @param operator
+     * @return
      */
-    List<VoUnclosedValve> getUnclosedValves(Long operator);
+    List<VoUnclosedValve> getUnclosedValves(@Param("onLineMap") String onLineMap, @Param("operator") Long operator);
 }
\ 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 65dc623..b398d09 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
@@ -20,6 +20,8 @@
 
     private String intakeNum;
 
+    private Boolean isOnLine;
+
     private String rtuAddr;
 
     private String orderNo;
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 f656fde..3bc43bd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -171,20 +171,29 @@
     where id = #{id,jdbcType=BIGINT}
   </update>
 
-  <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍-->
+  <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級-->
   <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve">
     SELECT
-      com.command_code AS commandCode,
-      inta.name AS intakeNum,
-      com.rtuAddr,
-      com.param ->>'$.orderNo' AS orderNo,
-      com.param ->>'$.icCardNo' AS vcNum,
-      com.send_time AS openTime
+        com.command_code AS commandCode,
+        inta.name AS intakeNum,
+        rtus.isOnLine,
+        com.rtuAddr,
+        com.param ->>'$.orderNo' AS orderNo,
+        com.param ->>'$.icCardNo' AS vcNum,
+        com.send_time AS openTime
     FROM rm_command_history com
-      INNER JOIN pr_controller con ON com.rtuAddr = con.rtuAddr
-      INNER JOIN pr_intake inta ON con.intakeId = inta.id
+        INNER JOIN pr_controller con ON com.rtuAddr = 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.rtuAddr = rtus.rtuAddr
     WHERE (com.command_code = '92' OR com.command_code = 'A2') AND com.operator = #{operator}
-      AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo')
+    AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo')
     ORDER BY com.send_time DESC
   </select>
 </mapper>
\ No newline at end of file
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 00296db..cf75af5 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
@@ -67,16 +67,6 @@
         return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
     }
 
-
-    /**
-     * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍
-     * @param operator
-     * @return
-     */
-    public List<VoUnclosedValve> getUnclosedValves(Long operator) {
-        return rmCommandHistoryMapper.getUnclosedValves(operator);
-    }
-
     /**
      * 鑾峰彇鍙栨按鍙e垪琛�
      * @return
@@ -146,4 +136,41 @@
         }
     }
 
+    /**
+     * 鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級
+     * @param operator
+     * @return
+     */
+    public List<VoUnclosedValve> getUnclosedValves(Long operator) {
+        Command com = new Command() ;
+        com.id = Command.defaultId;
+        com.code = "LCD0001";
+        com.type = "innerCommand";
+
+        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+        if(response != null && response.getString("code").equals("0001")) {
+            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
+            HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
+
+            JSONArray jsonArray = new JSONArray();
+            for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("rtuAddr", entry.getKey());
+                jsonObject.put("isOnLine", entry.getValue());
+                jsonArray.add(jsonObject);
+            }
+
+            List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
+            if(res != null) {
+                return res;
+            } else {
+                return new ArrayList<>();
+            }
+        } else {
+            QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
+            return new ArrayList<>();
+        }
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
index 9b4551d..c0fd553 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java
@@ -51,7 +51,7 @@
     protected static String controllerType = "57";
 
     /**
-     * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌
+     * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌锛堜粎娴嬭瘯鐢級
      * @return
      */
     @GetMapping(path = "get_online")
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 b2af522..aa2d7c7 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
@@ -280,7 +280,7 @@
     @SsoAop()
     public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator){
         try {
-            List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(operator);
+            List<VoUnclosedValve> res = commandSv.getUnclosedValves(operator);
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鑾峰彇鏈叧闃�璁板綍寮傚父", e);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
index d93184e..af54665 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -406,10 +406,10 @@
 
     /**
      * 鏍¢獙楠岃瘉鐮�
-     * @param phoneNumber
-     * @param code
+     * @param po
+     * @param bindingResult
      * @return
-     * @throws ClientException
+     * @throws IOException
      */
     @Operation(summary = "鏍¢獙楠岃瘉鐮�", description = "鏍¢獙楠岃瘉鐮�")
     @ApiResponses(value = {

--
Gitblit v1.8.0