From 10a0b0ca34824307aa7d23b0ad6679b36bd57842 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 10 六月 2025 19:59:49 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java |  197 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 168 insertions(+), 29 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
index 9e21c81..6b4d081 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -5,6 +5,8 @@
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.rtuState.RtuStatus;
 import com.dy.rtuMw.server.local.localProtocol.*;
+import com.dy.rtuMw.server.mqtt.DevStatus;
+import com.dy.rtuMw.server.mqtt.DevStatusDealer;
 import com.dy.rtuMw.server.mqtt.MqttUnit;
 
 import java.util.HashMap;
@@ -23,37 +25,105 @@
      * @return
      */
     public Command deal(Command com) throws Exception{
+        Command rCom ;
         String code = com.getCode() ;
-        if(code.equals(CodeLocal.clock)){
-            return this.clock(com) ;
-        }else if(code.equals(CodeLocal.onAllLine)){
-            return this.onAllLine(com) ;
-        }else if(code.equals(CodeLocal.onPartLine)){
-            return this.onPartLine(com) ;
-        }else if(code.equals(CodeLocal.onLineStatistics)){
-            return this.onLineStateStatistics(com) ;
-        }else if(code.equals(CodeLocal.allRtuStates)){
-            return this.allRtuStates(com) ;
-        }else if(code.equals(CodeLocal.partRtuStates)){
-            return this.someRtuStates(com) ;
-        }else if(code.equals(CodeLocal.oneRtuStates)){
-            return this.oneRtuStates(com) ;
-        }else if(code.equals(CodeLocal.allProtocols)){
-            return this.allProtocols(com) ;
-        }else if(code.equals(CodeLocal.stopTcpSv)){
-            return this.stopTcpSv(com) ;
-        }else if(code.equals(CodeLocal.recoverTcpSv)){
-            return this.recoverTcpSv(com) ;
-        }else if(code.equals(CodeLocal.recoverMqttSv)){
-            return this.stopMqttSv(com) ;
-        }else if(code.equals(CodeLocal.mwState)){
-            return this.mwInfo(com) ;
+        switch (code) {
+            case CodeLocal.clock -> {
+                rCom = this.clock(com);
+                break;
+            }
+            case CodeLocal.mwState -> {
+                rCom = this.mwInfo(com);
+                break;
+            }
+
+            ////////////////////////////////////////////
+            //
+            // 浠ヤ笅鏄浉鍏冲熀浜嶵CP杩炴帴鐨凴TU璁惧鐨勫唴閮ㄥ懡浠�
+            //
+            ////////////////////////////////////////////
+            case CodeLocal.onAllLine -> {
+                rCom = this.onAllLine(com);
+                break;
+            }
+            case CodeLocal.onPartLine -> {
+                rCom = this.onPartLine(com);
+                break;
+            }
+            case CodeLocal.onLineStatistics -> {
+                rCom = this.onLineStateStatistics(com);
+                break;
+            }
+            case CodeLocal.allRtuStates -> {
+                rCom = this.allRtuStates(com);
+                break;
+            }
+            case CodeLocal.partRtuStates -> {
+                rCom = this.someRtuStates(com);
+                break;
+            }
+            case CodeLocal.oneRtuStates -> {
+                rCom = this.oneRtuStates(com);
+                break;
+            }
+            case CodeLocal.allProtocols -> {
+                rCom = this.allProtocols(com);
+                break;
+            }
+            case CodeLocal.stopTcpSv -> {
+                rCom = this.stopTcpSv(com);
+                break;
+            }
+            case CodeLocal.recoverTcpSv -> {
+                rCom = this.recoverTcpSv(com);
+                break;
+            }
+
+
+            ////////////////////////////////////////////
+            //
+            // 浠ヤ笅鏄浉鍏冲熀浜嶮QTT杩炴帴鐨勮澶囩殑鍐呴儴鍛戒护
+            //
+            ////////////////////////////////////////////
+            case CodeLocal.onAllLineMqtt -> {
+                rCom = this.onAllLineMqtt(com);
+                break;
+            }
+            case CodeLocal.onPartLineMqtt -> {
+                rCom = this.onPartLineMqtt(com);
+                break;
+            }
+            case CodeLocal.onLineStatisticsMqtt -> {
+                rCom = this.onLineStateStatisticsMqtt(com);
+                break;
+            }
+            case CodeLocal.allRtuStatesMqtt -> {
+                rCom = this.allRtuStatesMqtt(com);
+                break;
+            }
+            case CodeLocal.partRtuStatesMqtt -> {
+                rCom = this.someRtuStatesMqtt(com);
+                break;
+            }
+            case CodeLocal.oneRtuStatesMqtt -> {
+                rCom = this.oneRtuStatesMqtt(com);
+                break;
+            }
+            case CodeLocal.stopMqttSv -> {
+                rCom = this.stopMqttSv(com);
+                break;
+            }
+            default -> {
+                rCom = ReturnCommand.errored("鍑洪敊锛屾敹鍒板唴閮ㄥ懡浠ょ殑鍔熻兘鐮佷笉鑳借瘑鍒紒", com.getId(), com.getCode());
+                break;
+            }
         }
-        return ReturnCommand.errored("鍑洪敊锛屾敹鍒板唴閮ㄥ懡浠ょ殑鍔熻兘鐮佷笉鑳借瘑鍒紒", com.getId(), com.getCode()) ;
+        return rCom ;
     }
 
     /**
      * 鏌ヨ閫氫俊涓棿浠舵椂閽�
+     * @param  command
      * @throws Exception
      */
     private Command clock(Command command) throws Exception{
@@ -112,7 +182,7 @@
             Map<String, RtuStatus> map = new RtuStatusDeal().dealSome(rtuAddrGrp) ;
             return ReturnCommand.successed("鏌ヨ閮ㄥ垎RTU鐘舵�佺粨鏋�", command.getId(), command.getCode(), map) ;
         }else{
-            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ槸鎵�鏌ヨRTU鐨勫湴鍧�涓�",  command.getId(), command.getCode()) ;
+            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨRTU鐨勫湴鍧�涓�",  command.getId(), command.getCode()) ;
         }
     }
 
@@ -126,7 +196,7 @@
             RtuStatus rtuStatus = new RtuStatusDeal().dealOne(rtuAddr) ;
             return ReturnCommand.successed("鏌ヨ涓�涓猂TU鐘舵�佺粨鏋�", command.getId(), command.getCode(), rtuStatus) ;
         }else{
-            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ槸鎵�鏌ヨRTU鐨勫湴鍧�",  command.getId(), command.getCode()) ;
+            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨRTU鐨勫湴鍧�",  command.getId(), command.getCode()) ;
         }
     }
 
@@ -160,8 +230,77 @@
         return ReturnCommand.successed("宸茬粡鍚姩鎭㈠TCP鏈嶅姟", command.getId(), command.getCode(), null) ;
     }
 
+
     /**
-     * 鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴
+     * 鏌ヨ鎵�鏈塎QTT璁惧鍦ㄧ嚎鎯呭喌
+     * @throws Exception
+     */
+    private Command onAllLineMqtt(Command command) throws Exception{
+        HashMap<String, Boolean> map = DevStatusDealer.allOnLine() ;
+        return ReturnCommand.successed("鏌ヨ鎵�鏈塎qtt璁惧鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), map) ;
+    }
+
+    /**
+     * 鏌ヨ閮ㄥ垎MQTT璁惧鍦ㄧ嚎鎯呭喌
+     * @throws Exception
+     */
+    private Command onPartLineMqtt(Command command) throws Exception{
+        if(command.param != null && command.param instanceof String && !command.param.equals("")){
+            String[] devIds = ((String)command.param).split(",");
+            HashMap<String, Boolean> map = DevStatusDealer.partOnLine(devIds) ;
+            return ReturnCommand.successed("鏌ヨ閮ㄥ垎Mqtt璁惧鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), map) ;
+        }else{
+            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨMqtt璁惧鐨勫湴鍧�涓�",  command.getId(), command.getCode()) ;
+        }
+    }
+
+    /**
+     * 缁熻MQTT璁惧鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
+     * @throws Exception
+     */
+    private Command onLineStateStatisticsMqtt(Command command) throws Exception{
+        RtuOnLineStateStatisticsVo vo = DevStatusDealer.statisticsOnLine() ;
+        return ReturnCommand.successed("鏌ヨ鎵�鏈塎qtt璁惧鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), vo) ;
+    }
+
+    /**
+     * 鏌ヨ鎵�鏈塎QTT璁惧鐘舵��
+     * @throws Exception
+     */
+    private Command allRtuStatesMqtt(Command command) throws Exception{
+        Map<String, DevStatus> map =  DevStatusDealer.allStatus() ;
+        return ReturnCommand.successed("鏌ヨ鎵�鏈塎qtt璁惧鐘舵�佺粨鏋�", command.getId(), command.getCode(), map) ;
+    }
+
+    /**
+     * 鏌ヨ閮ㄥ垎MQTT璁惧鐘舵��
+     * @throws Exception
+     */
+    private Command someRtuStatesMqtt(Command command) throws Exception{
+        if(command.param != null && command.param instanceof String && !command.param.equals("")){
+            String[] devIds = ((String)command.param).split(",");
+            Map<String, DevStatus> map = DevStatusDealer.someStatus(devIds) ;
+            return ReturnCommand.successed("鏌ヨ閮ㄥ垎Mqtt璁惧鐘舵�佺粨鏋�", command.getId(), command.getCode(), map) ;
+        }else{
+            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨMqtt璁惧鐨勫湴鍧�涓�",  command.getId(), command.getCode()) ;
+        }
+    }
+
+    /**
+     * 鏌ヨ閮ㄥ垎MQTT璁惧鐘舵��
+     * @throws Exception
+     */
+    private Command oneRtuStatesMqtt(Command command) throws Exception{
+        if(command.param != null && command.param instanceof String && !command.param.equals("")){
+            String devId = (String)command.param;
+            DevStatus devStatus = DevStatusDealer.oneStatus(devId) ;
+            return ReturnCommand.successed("鏌ヨ涓�涓狹qtt璁惧鐘舵�佺粨鏋�", command.getId(), command.getCode(), devStatus) ;
+        }else{
+            return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨMqtt璁惧鐨勫湴鍧�",  command.getId(), command.getCode()) ;
+        }
+    }
+    /**
+     * 鍋滄MQTT鏈嶅姟
      * @throws Exception
      */
     private Command stopMqttSv(Command command) throws Exception{
@@ -174,7 +313,7 @@
 
 
     /**
-     * 鎭㈠TCP鏈嶅姟锛屾帴鍏ユ柊鐨凾CP杩炴帴
+     * 鎭㈠MQTT鏈嶅姟
      * @throws Exception
      */
     private Command recoverMqttSv(Command command) throws Exception{

--
Gitblit v1.8.0