From 44a78bc47ab66d6492bc0579f58f24dc1921b5d5 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 03 四月 2025 15:44:30 +0800
Subject: [PATCH] 1、webSocket相关代码进行了注解优化; 2、通信中间件把阀控器上报的阀门状态进行消息推送,前端、小程序可能用到(webSocket推送)。

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java |  116 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 87 insertions(+), 29 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 c71cbd4..f6570d2 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
@@ -7,6 +7,8 @@
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
+import com.dy.rtuMw.server.msCenter.MsObj;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -33,6 +35,7 @@
         DataV202404 dV202404 = (DataV202404)d.getSubData() ;
         Object cdObj = dV202404.subData ;
         //鍓嶉潰浠诲姟宸茬粡鍒ゆ柇cdObj涓嶄负null
+        boolean toNext = false ;
         try{
             Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
             DbSv sv = (DbSv)objs[0] ;
@@ -40,33 +43,103 @@
             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 ;
+                    }
+                }
             }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 ;
+                    }
+                }
             }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 ;
+                    }
+                }
             }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 ;
+                    }
+                }
             }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 ;
+                    }
+                }
             }
         }catch (Exception e){
             log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
         }
+        if(toNext){
+            this.toNextTasks(d);
+        }
     }
+
+    /**
+     * 鎶ヨ鐘舵�佹暟鎹瓨鍏ユ秷鎭腑蹇�
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataV202404 鏁版嵁瀵硅薄
+     * @param alarmVo 鎶ヨ+鐘舵�佸璞�
+     */
+    private void toMsCenter(PrController controller, String rtuAddr, DataV202404 dataV202404,  AlarmVo alarmVo, String dt){
+        if(alarmVo != null && controller != null){
+            if(alarmVo.hasAlarm()){
+                MsObj msObj = new MsObj() ;
+                msObj.put("name", "鎶ヨ");
+                msObj.put("rtuAddr", rtuAddr);
+                msObj.put("intakeId", controller.getIntakeId());
+                msObj.put("state", alarmVo.alarmContent());
+                msObj.put("dt", dt);
+                MsCenterUnit.getInstance().pushMs(msObj);
+            }
+            if(alarmVo.statePump != null){
+                MsObj msObj = new MsObj() ;
+                msObj.put("name", "闃�鎬�");
+                msObj.put("rtuAddr", rtuAddr);
+                msObj.put("intakeId", controller.getIntakeId());
+                msObj.put("state", alarmVo.statePump);
+                msObj.put("stateName", alarmVo.statePump==1?"寮�":"鍏�");
+                msObj.put("dt", dt);
+                MsCenterUnit.getInstance().pushMs(msObj);
+            }
+        }
+    }
+
     /**
      * 淇濆瓨鎶ヨ鐘舵�佹渶鏂版暟鎹�
      * @param sv 鏈嶅姟
@@ -99,20 +172,20 @@
                     alarmVo==null?null:alarmVo.alarmWaterMeterBreak,
                     alarmVo==null?null:alarmVo.alarmEleMeterFault,
                     alarmVo==null?null:alarmVo.alarm0MoneyRemain,
-                    alarmVo==null?null:alarmVo.alarmInnerDoor,
-                    alarmVo==null?null:alarmVo.alarmOuterDoor,
+                    alarmVo==null?null:alarmVo.alarmDoor,
+                    alarmVo==null?null:alarmVo.alarmDoor,//2025-02-19鏈虹澶栭棬鎶ヨ椤规敼涓虹數姹犵數鍘嬩簡
                     alarmVo==null?null:alarmVo.alarmEleMiss,
                     alarmVo==null?null:alarmVo.alarmEleExceed,
                     alarmVo==null?null:alarmVo.alarmEleLowVolt,
                     alarmVo==null?null:alarmVo.stateIcEnable,
-                    (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
-                    (byte)0,//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
-                    (byte)0//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
+                    alarmVo==null?null:alarmVo.alarmBatteryVolt,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
+                    alarmVo==null?null:alarmVo.alarmBlockValve,//闃�闂ㄥ牭杞姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+                    (byte)0,//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
+                    System.currentTimeMillis()
             ) ;
             sv.saveRmAlarmStateLast(po) ;
         }else{
             po = this.update(po, controller, rtuDt, alarmVo, receiveDt) ;
-            this.updateVirCardNoUseState(sv, controller, alarmVo) ;
             sv.updateRmAlarmStateLast(po);
         }
     }
@@ -147,14 +220,14 @@
                 alarmVo==null?null:alarmVo.alarmWaterMeterBreak,
                 alarmVo==null?null:alarmVo.alarmEleMeterFault,
                 alarmVo==null?null:alarmVo.alarm0MoneyRemain,
-                alarmVo==null?null:alarmVo.alarmInnerDoor,
-                alarmVo==null?null:alarmVo.alarmOuterDoor,
+                alarmVo==null?null:alarmVo.alarmDoor,
+                alarmVo==null?null:alarmVo.alarmDoor,//2025-02-19鏈虹澶栭棬鎶ヨ椤规敼涓虹數姹犵數鍘嬩簡
                 alarmVo==null?null:alarmVo.alarmEleMiss,
                 alarmVo==null?null:alarmVo.alarmEleExceed,
                 alarmVo==null?null:alarmVo.alarmEleLowVolt,
                 alarmVo==null?null:alarmVo.stateIcEnable,
-                (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
-                (byte)0,//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+                alarmVo==null?null:alarmVo.alarmBatteryVolt,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
+                alarmVo==null?null:alarmVo.alarmBlockValve,//闃�闂ㄥ牭杞姤璀�(1锛氭姤璀︼紝0锛氭甯�)
                 (byte)0//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
         ) ;
         sv.saveRmAlarmStateHistory(po) ;
@@ -189,31 +262,16 @@
             po.alarmWaterMeterBreak = alarmVo.alarmWaterMeterBreak ;
             po.alarmEleMeterFault = alarmVo.alarmEleMeterFault ;
             po.alarm0MoneyRemain = alarmVo.alarm0MoneyRemain ;
-            po.alarmInnerDoor = alarmVo.alarmInnerDoor ;
-            po.alarmOuterDoor = alarmVo.alarmOuterDoor ;
+            po.alarmInnerDoor = alarmVo.alarmDoor;
+            po.alarmOuterDoor = alarmVo.alarmDoor;
             po.alarmEleMiss = alarmVo.alarmEleMiss ;
             po.alarmEleExceed = alarmVo.alarmEleExceed ;
             po.alarmEleLowVolt = alarmVo.alarmEleLowVolt ;
             po.stateIcEnable = alarmVo.stateIcEnable ;
+            po.alarmBatteryVolt = alarmVo.alarmBatteryVolt ;
+            po.alarmValve = alarmVo.alarmBlockValve;
         }
         return po ;
     }
 
-    /**
-     * 铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵��
-     */
-    private void updateVirCardNoUseState(DbSv sv,
-                                PrController controller,
-                                AlarmVo alarmVo){
-        if(alarmVo != null){
-            if(alarmVo.statePump != null && alarmVo.statePump.byteValue() == 0){
-                //闃�闂ㄥ叧闂姸鎬�
-                if(controller != null && controller.getIntakeId() != null){
-                    //铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵��
-                    sv.updateVirCardNoUseState(controller.getIntakeId());
-                }
-            }
-        }
-
-    }
 }

--
Gitblit v1.8.0