pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java
@@ -3,7 +3,7 @@ import lombok.Data; /** * 遥测站自报实时数据 * 遥测站自报(整点)实时数据 */ @Data public class DataCdC0Vo { pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
@@ -4,6 +4,9 @@ @Data public class DataStateVo { public static final byte ValveOpenState = 0 ; public static final byte ValveCloseState = 1 ; public Byte icCard;// IC卡功能 public Byte valveState;//阀门状态 public Byte powerType ;//电源状态(0:220V供电,1:畜电池供电) pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -50,7 +50,11 @@ PrController controller = (PrController) objs[1]; this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); this.updateVirCardNoUseState(sv, controller, dataCd81Vo.stateVo) ; if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){ if(controller != null && controller.getIntakeId() != null){ this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ; } } } } else if (cdObj instanceof DataCd84Vo) { DataCd84Vo dataCd84Vo = (DataCd84Vo)cdObj ; @@ -60,7 +64,12 @@ PrController controller = (PrController) objs[1]; this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); this.updateVirCardNoUseState(sv, controller, dataCd84Vo.stateVo) ; /** 阀开工作报,阀门状态一定是打开状态,所以不设置下面数据以备后续任务设置虚拟卡状态 if(dataCd84Vo.stateVo != null && dataCd84Vo.stateVo.valveState != null && dataCd84Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){ if(controller != null && controller.getIntakeId() != null){ this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ; } }*/ } } else if (cdObj instanceof DataCdC0Vo) { DataCdC0Vo dataCdC0Vo = (DataCdC0Vo)cdObj ; @@ -70,7 +79,11 @@ PrController controller = (PrController) objs[1]; this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); this.updateVirCardNoUseState(sv, controller, dataCdC0Vo.stateVo) ; if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){ if(controller != null && controller.getIntakeId() != null){ this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ; } } } } } catch (Exception e) { @@ -151,23 +164,6 @@ } /** * 虚拟卡在取水口上的占用状态改为非应用状态 */ private void updateVirCardNoUseState(DbSv sv, PrController controller, DataStateVo stateVo){ if(stateVo != null){ if(stateVo.valveState != null && stateVo.valveState.byteValue() == 0){ //阀门关闭状态 if(controller != null && controller.getIntakeId() != null){ //虚拟卡在取水中的占用状态改为非应用状态 sv.updateVirCardNoUseState(controller.getIntakeId()); } } } } /** * 向钉钉发送消息 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -168,8 +168,10 @@ } } /** * 处理补报,暂时无逻辑 */ private void dealSupplyReport(){ } /** pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -123,8 +123,10 @@ } } /** * 处理补报,暂时无逻辑 */ private void dealSupplyReport(){ } /** pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealVirCardState.java
New file @@ -0,0 +1,40 @@ package com.dy.rtuMw.server.rtuData.p206V1_0_0; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataStateVo; import com.dy.rtuMw.server.rtuData.TaskSurpport; import com.dy.rtuMw.server.rtuData.dbSv.DbSv; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * @Author: liurunyu * @Date: 2024/8/9 9:49 * @Description */ public class TkDealVirCardState extends TaskSurpport { private static final Logger log = LogManager.getLogger(TkDealVirCardState.class.getName()) ; //类ID,一定与Tree.xml配置文件中配置一致 public static final String taskId = "TkDealVirCardState" ; /** * 执行节点任务:虚拟卡在取水口上的占用状态改为非占用状态 * @param data 需要处理的数据 */ @Override public void execute(Object data) { Object[] objs = this.getTaskResults(TkDealAlarmStatus.taskId); if(objs != null && objs.length >= 2){ Long intakeId = (Long)objs[0] ; Byte valveState = (Byte)objs[1] ; if(intakeId != null && valveState.byteValue() == DataStateVo.ValveCloseState){ objs = this.getTaskResults(TkPreGenObjs.taskId); DbSv sv = (DbSv) objs[0]; //虚拟卡在取水口上的占用状态改为非占用状态 sv.updateVirCardNoUseState(intakeId); } } } } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -15,7 +15,9 @@ <task id="TkDealControllerNoTramp" name="非流浪者RTU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp"> <!-- 识别非命令应答上行数据 --> <task id="TkFindReport" name="识别非命令应答上行数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport"> <task id="TkDealAlarmStatus" name="控制器报警与状态数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" /> <task id="TkDealAlarmStatus" name="控制器报警与状态及向钉钉发送报警信息" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus"> <task id="TkDealVirCardState" name="虚拟卡占用状态恢复" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealVirCardState" /> </task> <task id="TkDealOnHourReport" name="控制器自报数据(整点报)(功能码C0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOnHourReport" /> <task id="TkDealWorkReport" name="控制器阀开工作上报(功能码84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" /> <task id="TkDealOpenValveReport" name="控制器开阀上报(功能码83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" /> @@ -27,8 +29,7 @@ </task> <!-- 识别命令响应数据 --> <task id="TkFindComResponse" name="识别响应命令数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse"> <task id="TkRtuDealCommandResponse" name="RTU响应命令数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" > </task> <task id="TkRtuDealCommandResponse" name="RTU响应命令数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" /> </task> </task> </task>