From 959dcca95276888cd9c092d93d276ef9aa580aef Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 30 四月 2025 16:26:19 +0800 Subject: [PATCH] 1、增加远程透传命令; 2、表阀一体机协议优化; --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java | 123 +++++++++++++++++++++++++++------------- 1 files changed, 83 insertions(+), 40 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java index f6570d2..c9d63e0 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java @@ -14,6 +14,9 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.HashMap; +import java.util.Map; + /** * @Author liurunyu * @Date 2024/5/8 14:18 @@ -24,6 +27,9 @@ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� public static final String taskId = "TkDealAlarmStatusV202404" ; + + //鏄惁鍦ㄦ煇涓椂鍒伙紙骞存湀鏃ユ椂锛変繚瀛樹簡鎶ヨ鐘舵�佹暟鎹� + private static final Map<String, Long> onceSaveAlarmData4Rtus = new HashMap<>(); /** * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵�� @@ -42,62 +48,82 @@ PrController controller = (PrController)objs[1] ; if(cdObj instanceof DataCd81Vo){ //璁惧缁堢闅忔満鑷姤 - DataCd81Vo cdData = (DataCd81Vo)(cdObj) ; - this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); - this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ - if(controller != null && controller.getIntakeId() != null){ - this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; - toNext = true ; + if(this.needSave2Db( d.getRtuAddr())) { + //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁 + DataCd81Vo cdData = (DataCd81Vo)(cdObj) ; + this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.cacheSaveTime(d.getRtuAddr()); + if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ + if(controller != null && controller.getIntakeId() != null){ + this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; + toNext = true ; + } } } }else if(cdObj instanceof DataCd80_5BVo){ //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊� - DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ; - this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); - this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ - if(controller != null && controller.getIntakeId() != null){ - this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; - toNext = true ; + if(this.needSave2Db( d.getRtuAddr())) { + //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁 + DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ; + this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.cacheSaveTime(d.getRtuAddr()); + if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ + if(controller != null && controller.getIntakeId() != null){ + this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; + toNext = true ; + } } } }else if(cdObj instanceof DataCd93_A3Vo){ //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� + 鍒峰崱鍏虫车/闃�涓婃姤 - DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ; - this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); - this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; - this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; - if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ - if(controller != null && controller.getIntakeId() != null){ - this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; - toNext = true ; + if(this.needSave2Db( d.getRtuAddr())) { + //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁 + DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ; + this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; + this.cacheSaveTime(d.getRtuAddr()); + if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ + if(controller != null && controller.getIntakeId() != null){ + this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; + toNext = true ; + } } } }else if(cdObj instanceof DataCd84Vo){ //璁惧缁堢鍒峰崱寮�娉�/闃�涓婃姤 - DataCd84Vo cdData = (DataCd84Vo)(cdObj) ; - this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); - this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; - this.saveHistory(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; - if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ - if(controller != null && controller.getIntakeId() != null){ - this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; - toNext = true ; + if(this.needSave2Db( d.getRtuAddr())) { + //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁 + DataCd84Vo cdData = (DataCd84Vo)(cdObj) ; + this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; + this.cacheSaveTime(d.getRtuAddr()); + if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ + if(controller != null && controller.getIntakeId() != null){ + this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; + toNext = true ; + } } } }else if(cdObj instanceof DataCdC2Vo){ //璁惧缁堢寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤 - DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ; - this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); - this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; - if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ - if(controller != null && controller.getIntakeId() != null){ - this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; - toNext = true ; + if(this.needSave2Db( d.getRtuAddr())) { + //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁 + DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ; + this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt); + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; + this.cacheSaveTime(d.getRtuAddr()); + if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ + if(controller != null && controller.getIntakeId() != null){ + this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; + toNext = true ; + } } } } @@ -109,6 +135,23 @@ } } + private boolean needSave2Db(String rtuAddr){ + if(!onceSaveAlarmData4Rtus.containsKey(rtuAddr)){ + return true ; + }else{ + Long time = onceSaveAlarmData4Rtus.get(rtuAddr) ; + Long ymdh = Long.parseLong(DateTime.yyyyMMddHH()) ; + if(ymdh.longValue() == time.longValue()){ + //鍚屼竴涓皬鏃跺唴 + return false ; + }else{ + return true ; + } + } + } + private void cacheSaveTime(String rtuAddr){ + onceSaveAlarmData4Rtus.put(rtuAddr, Long.parseLong(DateTime.yyyyMMddHH())); + } /** * 鎶ヨ鐘舵�佹暟鎹瓨鍏ユ秷鎭腑蹇� * @param controller 鎺у埗鍣ㄥ璞� -- Gitblit v1.8.0