pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuState/RtuStatus.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java @@ -1,8 +1,11 @@ package com.dy.rtuMw.server.forTcp; package com.dy.common.mw.protocol.rtuState; import com.dy.common.util.DateTime; import lombok.Data; /** * RTU在通信中间件中的运行状态 */ @Data public class RtuStatus { pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/CodeLocal.java
@@ -14,6 +14,8 @@ public static final String partRtuStates = "LCD0011" ;//查询部分RTU状态 public static final String oneRtuStates = "LCD0012" ;//查询一个RTU状态 public static final String allProtocols = "LCD0100" ;//查询所有协议配置 public static final String stopTcpSv = "LCD0110" ;//停止TCP服务,不再接入新的TCP连接,已经TCP连接的全部断连接 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
@@ -7,7 +7,7 @@ import com.dy.rtuMw.server.forTcp.MidResultActionError; import com.dy.rtuMw.server.forTcp.MidResultActionFromRtu; import com.dy.rtuMw.server.forTcp.MidResultActionToRtu; import com.dy.rtuMw.server.rtuStatus.RtuInfoNotify; import com.dy.rtuMw.server.rtuStateFrProt.RtuInfoNotify; public class AdapterImp_ProtocolUnit implements ProtocolUnitAdapter { pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
@@ -1,5 +1,6 @@ package com.dy.rtuMw.server.forTcp; import com.dy.common.mw.protocol.rtuState.RtuStatus; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -3,7 +3,7 @@ import com.dy.common.mw.UnitCallbackInterface; import com.dy.common.mw.channel.tcp.TcpUnit; import com.dy.common.mw.protocol.Command; import com.dy.rtuMw.server.forTcp.RtuStatus; import com.dy.common.mw.protocol.rtuState.RtuStatus; import com.dy.rtuMw.server.local.localProtocol.*; import java.util.HashMap; @@ -121,7 +121,7 @@ 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("查询部分RTU状态结果", command.getId(), command.getCode(), rtuStatus) ; return ReturnCommand.successed("查询一个RTU状态结果", command.getId(), command.getCode(), rtuStatus) ; }else{ return ReturnCommand.errored("出错,命令参数应该是所查询RTU的地址", command.getId(), command.getCode()) ; } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java
@@ -1,6 +1,6 @@ package com.dy.rtuMw.server.local.localProtocol; import com.dy.rtuMw.server.forTcp.RtuStatus; import com.dy.common.mw.protocol.rtuState.RtuStatus; import com.dy.rtuMw.server.forTcp.RtuStatusDealer; import java.util.Map; pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStateFrProt/RtuInfoNotify.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStatus/RtuInfoNotify.java @@ -1,4 +1,4 @@ package com.dy.rtuMw.server.rtuStatus; package com.dy.rtuMw.server.rtuStateFrProt; import com.dy.common.mw.protocol.Notify; import com.dy.common.mw.protocol.NotifyInfo; @@ -8,7 +8,7 @@ /** * @Author: liurunyu * @Date: 2024/11/3 13:30 * @Description * @Description 从协议解析数据中得到的RTU状态并通知出去 */ public class RtuInfoNotify implements Notify { /** pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorCtrl.java
@@ -1,6 +1,7 @@ package com.dy.pipIrrRemote.monitor; import com.dy.common.aop.SsoAop; import com.dy.common.mw.protocol.rtuState.RtuStatus; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; @@ -41,7 +42,29 @@ QueryResultVo<List<VoOnLineIntake>> res = monitorSv.selectOnLineIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("查询取水口异常", e); log.error("命令执行异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * RTU在通信中间件中的运行状态 * @param rtuAddr * @return */ @GetMapping(path = "rtuStatus") @SsoAop() public BaseResponse<RtuStatus> rtuStatus(String rtuAddr){ try { RtuStatus res = monitorSv.rtuStatus(rtuAddr); if(res != null){ return BaseResponseUtils.buildSuccess(res); }else{ return BaseResponseUtils.buildErrorMsg("后台系统出错,从通信中间件未得到查询结果"); } } catch (Exception e) { log.error("命令执行异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONObject; import com.dy.common.mw.protocol.Command; import com.dy.common.mw.protocol.CommandBackParam; import com.dy.common.mw.protocol.rtuState.RtuStatus; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; @@ -56,6 +57,39 @@ } /** * 查询RTU在通信中间件中的支行状态 * @param rtuAddr * @return */ public RtuStatus rtuStatus(String rtuAddr){ //向通信中间件发关命令,查询部分RTU在线情况 RtuStatus rtuStatus = null ; Command com = this.createInnerCommand(CodeLocal.oneRtuStates); com.setParam(rtuAddr) ; String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ; BaseResponse res = sendPostRequest2Mw(restTemplate, rqUrl, com) ; if(res != null){ if(res.isSuccess()){ Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ; CommandBackParam bakParam = JSON.parseObject((reCom== null || reCom.param == null) ? null : JSON.toJSONString(reCom.param), CommandBackParam.class) ; if(bakParam != null){ if(bakParam.getSuccess().booleanValue()){ //通信中间件成功返回命令结果 rtuStatus = JSON.parseObject(JSON.toJSONString(reCom.getAttachment()), RtuStatus.class); } }else{ log.error("通信中间件返回内部命令结果中不包含CommandBackParam类型参数"); } }else{ log.error("通信中间件返回内部命令执行失败" + (res.getMsg() == null? "" : ("," + res.getMsg()))) ; } }else{ log.error("通信中间件返回内部命令结果为null"); } return rtuStatus ; } /** * 查询取水口,不限制在线与离线状态 * @param vo * @return