From ebe8e2bc34f3a227496aac83623f8d51b82e6914 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 12 十一月 2024 15:22:50 +0800
Subject: [PATCH] 根据RTU上报状态清除虚拟IC卡占用状态逻辑中,增加一个日期时间限制,以防止清除计划开阀命令的中虚拟IC卡占用状态。

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java |  102 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 65 insertions(+), 37 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 193e8d8..837e2f0 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
@@ -12,6 +12,8 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.util.Date;
+
 /**
  * @Author liurunyu
  * @Date 2024/5/8 14:18
@@ -30,42 +32,41 @@
     @Override
     public void execute(Object data) {
         Data d = (Data)data ;
-        DataV202404 dV202404 = (DataV202404)d.getSubData()  ;//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+        DataV202404 dV202404 = (DataV202404)d.getSubData() ;
         Object cdObj = dV202404.subData ;
-        if(cdObj != null){
-            try{
-                Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
-                DbSv sv = (DbSv)objs[0] ;
-                PrController controller = (PrController)objs[1] ;
-                if(cdObj instanceof DataCd81Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd80_5BVo){
-                    //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
-                    DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd93_A3Vo){
-                    //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
-                    DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCd84Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ;
-                }else if(cdObj instanceof DataCdC2Vo){
-                    //璁惧缁堢闅忔満鑷姤
-                    DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
-                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                    this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
-                }
-            }catch (Exception e){
-                log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
+        //鍓嶉潰浠诲姟宸茬粡鍒ゆ柇cdObj涓嶄负null
+        try{
+            Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            PrController controller = (PrController)objs[1] ;
+            if(cdObj instanceof DataCd81Vo){
+                //璁惧缁堢闅忔満鑷姤
+                DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd80_5BVo){
+                //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
+                DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd93_A3Vo){
+                //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
+                DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCd84Vo){
+                //璁惧缁堢鍒峰崱寮�娉�/闃�涓婃姤
+                DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ;
+            }else if(cdObj instanceof DataCdC2Vo){
+                //璁惧缁堢寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤
+                DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
+                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+                this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
             }
+        }catch (Exception e){
+            log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
         }
     }
     /**
@@ -83,7 +84,7 @@
                                   String rtuDt,
                                   AlarmVo alarmVo,
                                   String receiveDt) throws Exception {
-        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
+        RmAlarmStateLast po = sv.getRmAlarmStateLast(controller.getIntakeId()) ;
         if(po == null){
             po = new RmAlarmStateLast(null,
                     controller==null?null:controller.getId(),
@@ -105,11 +106,16 @@
                     alarmVo==null?null:alarmVo.alarmEleMiss,
                     alarmVo==null?null:alarmVo.alarmEleExceed,
                     alarmVo==null?null:alarmVo.alarmEleLowVolt,
-                    alarmVo==null?null:alarmVo.stateIcEnable
+                    alarmVo==null?null:alarmVo.stateIcEnable,
+                    (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
+                    (byte)0,//闃�闂ㄦ姤璀�(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);
         }
     }
@@ -149,7 +155,10 @@
                 alarmVo==null?null:alarmVo.alarmEleMiss,
                 alarmVo==null?null:alarmVo.alarmEleExceed,
                 alarmVo==null?null:alarmVo.alarmEleLowVolt,
-                alarmVo==null?null:alarmVo.stateIcEnable
+                alarmVo==null?null:alarmVo.stateIcEnable,
+                (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
+                (byte)0,//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
+                (byte)0//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
         ) ;
         sv.saveRmAlarmStateHistory(po) ;
     }
@@ -192,4 +201,23 @@
         }
         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){
+                    //铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵��
+                    Date now = new Date() ;
+                    sv.updateVirCardNoUseState(controller.getIntakeId(), now);
+                }
+            }
+        }
+
+    }
 }

--
Gitblit v1.8.0