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