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 | 338 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 338 insertions(+), 0 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 new file mode 100644 index 0000000..6b4d081 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java @@ -0,0 +1,338 @@ +package com.dy.rtuMw.server.local; + +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 + * @Date 2023/12/21 15:56 + * @LastEditTime 2023/12/21 15:56 + * @Description + */ +public class CommandInnerDeaLer { + /** + * 澶勭悊鍐呴儴鍛戒护 + * @param com + * @return + */ + public Command deal(Command com) throws Exception{ + Command rCom ; + String code = com.getCode() ; + 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 rCom ; + } + + /** + * 鏌ヨ閫氫俊涓棿浠舵椂閽� + * @param command + * @throws Exception + */ + private Command clock(Command command) throws Exception{ + ClockVo c = new ClockDeal().deal() ; + return ReturnCommand.successed("鏌ヨ閫氫俊涓棿浠舵椂閽�", command.getId(), command.getCode(), c) ; + } + + /** + * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌 + * @throws Exception + */ + 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()) ; + } + } + + /** + * 鏌ヨ鎵�鏈塕TU鍗忚閰嶇疆 + * @throws Exception + */ + private Command allProtocols(Command command) throws Exception{ + RtuProtocolVo mc = new RtuProtocolsDeal().deal() ; + return ReturnCommand.successed("鏌ヨ鎵�鏈夐�氫俊鍗忚閰嶇疆", command.getId(), command.getCode(), mc) ; + } + + /** + * 鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴 + * @throws Exception + */ + private Command stopTcpSv(Command command) throws Exception{ + TcpUnit.getInstance().stop(new UnitCallbackInterface(){ + public void call(Object obj) throws Exception { + } + }); + return ReturnCommand.successed("宸茬粡鍚姩鍋滄TCP鏈嶅姟", command.getId(), command.getCode(), null) ; + } + + /** + * 鎭㈠TCP鏈嶅姟锛屾帴鍏ユ柊鐨凾CP杩炴帴 + * @throws Exception + */ + private Command recoverTcpSv(Command command) throws Exception{ + TcpUnit.getInstance().recover(); + return ReturnCommand.successed("宸茬粡鍚姩鎭㈠TCP鏈嶅姟", command.getId(), command.getCode(), null) ; + } + + + /** + * 鏌ヨ鎵�鏈塎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