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 | 285 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 268 insertions(+), 17 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 9ae2f68..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 @@ -1,9 +1,16 @@ package com.dy.rtuMw.server.local; -import com.dy.common.mw.UnitStartedCallbackInterface; +import com.dy.common.mw.UnitCallbackInterface; import com.dy.common.mw.channel.tcp.TcpUnit; 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; +import java.util.Map; /** * @Author liurunyu @@ -18,23 +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.onLine)){ - return this.onLine(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) ; + 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{ @@ -46,9 +135,69 @@ * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌 * @throws Exception */ - private Command onLine(Command command) throws Exception{ - RtuOnLineVo ol = new RtuOnLineDeal().deal() ; - return ReturnCommand.successed("鏌ヨ鎵�鏈夋祴绔欏湪绾挎儏鍐电粨鏋�", command.getId(), command.getCode(), ol) ; + private Command onAllLine(Command command) throws Exception{ + HashMap<String, Boolean> map = new RtuOnLineDeal().dealAll() ; + return ReturnCommand.successed("鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), map) ; + } + + /** + * 鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌 + * @throws Exception + */ + private Command onPartLine(Command command) throws Exception{ + if(command.param != null && command.param instanceof String && !command.param.equals("")){ + String[] rtuAddrGrp = ((String)command.param).split(","); + HashMap<String, Boolean> map = new RtuOnLineDeal().dealPart(rtuAddrGrp) ; + return ReturnCommand.successed("鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), map) ; + }else{ + return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ槸鎵�鏌ヨRTU鐨勫湴鍧�涓�", command.getId(), command.getCode()) ; + } + } + + /** + * 缁熻鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌 + * @throws Exception + */ + private Command onLineStateStatistics(Command command) throws Exception{ + RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsDeal().deal() ; + return ReturnCommand.successed("鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌缁撴灉", command.getId(), command.getCode(), vo) ; + } + + /** + * 鏌ヨ鎵�鏈塕TU鐘舵�� + * @throws Exception + */ + private Command allRtuStates(Command command) throws Exception{ + Map<String, RtuStatus> map = new RtuStatusDeal().dealAll() ; + return ReturnCommand.successed("鏌ヨ鎵�鏈塕TU鐘舵�佺粨鏋�", command.getId(), command.getCode(), map) ; + } + + /** + * 鏌ヨ閮ㄥ垎RTU鐘舵�� + * @throws Exception + */ + private Command someRtuStates(Command command) throws Exception{ + if(command.param != null && command.param instanceof String && !command.param.equals("")){ + String[] rtuAddrGrp = ((String)command.param).split(","); + 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()) ; + } + } + + /** + * 鏌ヨ閮ㄥ垎RTU鐘舵�� + * @throws Exception + */ + private Command oneRtuStates(Command command) throws Exception{ + if(command.param != null && command.param instanceof String && !command.param.equals("")){ + String rtuAddr = (String)command.param; + RtuStatus rtuStatus = new RtuStatusDeal().dealOne(rtuAddr) ; + return ReturnCommand.successed("鏌ヨ涓�涓猂TU鐘舵�佺粨鏋�", command.getId(), command.getCode(), rtuStatus) ; + }else{ + return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ湁鎵�鏌ヨRTU鐨勫湴鍧�", command.getId(), command.getCode()) ; + } } /** @@ -65,9 +214,8 @@ * @throws Exception */ private Command stopTcpSv(Command command) throws Exception{ - TcpUnit.getInstance().stop(new UnitStartedCallbackInterface(){ + TcpUnit.getInstance().stop(new UnitCallbackInterface(){ public void call(Object obj) throws Exception { - } }); return ReturnCommand.successed("宸茬粡鍚姩鍋滄TCP鏈嶅姟", command.getId(), command.getCode(), null) ; @@ -83,5 +231,108 @@ } + /** + * 鏌ヨ鎵�鏈塎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{ + MqttUnit.getInstance().stop(new UnitCallbackInterface(){ + public void call(Object obj) throws Exception { + } + }); + return ReturnCommand.successed("宸茬粡鍚姩鍋滄Mqtt鏈嶅姟", command.getId(), command.getCode(), null) ; + } + + + /** + * 鎭㈠MQTT鏈嶅姟 + * @throws Exception + */ + private Command recoverMqttSv(Command command) throws Exception{ + MqttUnit.getInstance().recover(new UnitCallbackInterface(){ + public void call(Object obj) throws Exception { + } + }); + return ReturnCommand.successed("宸茬粡鍚姩鎭㈠Mqtt鏈嶅姟", command.getId(), command.getCode(), null) ; + } + + + /** + * 鏌ヨ閫氫俊涓棿浠惰繍琛屾儏鍐� + * @throws Exception + */ + private Command mwInfo(Command command) throws Exception{ + MwInfoVo mwInfo = new MwInfoDeal().deal() ; + return ReturnCommand.successed("鏌ヨ閫氫俊涓棿浠惰繍琛屾儏鍐�", command.getId(), command.getCode(), mwInfo) ; + } + } -- Gitblit v1.8.0