From 25fd361007a843306bb4a1f4a5204ef9243fb974 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 27 三月 2024 19:18:53 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java |   80 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
index 5143c34..32eb003 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
@@ -1,9 +1,14 @@
 package com.dy.aceMw.server.rtuData.p206V1_0_0;
 
 import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.aceMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCdC0Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmAutoReportHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmAutoReportLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -11,17 +16,17 @@
  * @Author liurunyu
  * @Date 2024/1/16 14:11
  * @LastEditTime 2024/1/16 14:11
- * @Description
+ * @Description 鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鍔熻兘鐮佷负C0锛夛紙鏁寸偣涓婃姤锛�
  */
 public class TkDealAutoReport  extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkDealAlarmStatus.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkDealAutoReport.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkDealAlarmStatus" ;
+    public static final String taskId = "TkDealAutoReport" ;
 
     /**
-     * 鎵ц鑺傜偣浠诲姟锛歊TU鑷姤
+     * 鎵ц鑺傜偣浠诲姟锛氭帶鍒跺櫒鑷姤鏁版嵁锛堝姛鑳界爜涓篊0锛�
      * @param data 闇�瑕佸鐞嗙殑鏁版嵁
      */
     @Override
@@ -31,8 +36,73 @@
         if (subD != null) {
             DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
             if (dV1_0_1 != null && dV1_0_1.dataCdC0Vo != null) {
-                DataCdC0Vo dataCdC0Vo = dV1_0_1.dataCdC0Vo ;
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                DbSv sv = (DbSv)objs[0] ;
+                PrController controller = (PrController)objs[1] ;
+                try{
+                    this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCdC0Vo) ;
+                    this.saveHistory(sv, controller, d.getRtuAddr(),dV1_0_1, dV1_0_1.dataCdC0Vo) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
+                }
             }
         }
     }
+    /**
+     * 淇濆瓨鑷姤鏈�鏂版暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
+     */
+    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        RmAutoReportLast po = sv.getRmAutoReportLast(rtuAddr) ;
+        if(po == null){
+            po = new RmAutoReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getId(),
+                    rtuAddr,
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+                    dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
+                    dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
+            sv.saveRmAutoReportLast(po) ;
+        }else{
+            po = this.update(controller, po, dV1_0_1, dataCdC0Vo) ;
+            sv.updateRmAutoReportLast(po);
+        }
+    }
+
+    /**
+     * 淇濆瓨鑷姤鍘嗗彶璁板綍
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dataCdC0Vo 鑷姤鏁版嵁瀵硅薄
+     */
+    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        RmAutoReportHistory po = new RmAutoReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
+                dataCdC0Vo.instantAmount, dataCdC0Vo.totalAmount, dataCdC0Vo.lossAmount,
+                dataCdC0Vo.waterPress, dataCdC0Vo.batteryVolt, dataCdC0Vo.sunVolt, dataCdC0Vo.signalValue) ;
+        sv.saveRmAutoReportHistory(po) ;
+    }
+
+
+    private RmAutoReportLast update(PrController controller, RmAutoReportLast po, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception {
+        po.controllerid = controller==null?null:controller.getId();
+        po.intakeid = controller==null?null:controller.getIntakeId();
+
+        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt) ;
+        po.instantamount = dataCdC0Vo.instantAmount;
+        po.totalamount = dataCdC0Vo.totalAmount;
+        po.lossamount = dataCdC0Vo.lossAmount;
+        po.waterpress = dataCdC0Vo.waterPress;
+        po.batteryvolt = dataCdC0Vo.batteryVolt;
+        po.sunvolt = dataCdC0Vo.sunVolt;
+        po.signalvalue = dataCdC0Vo.signalValue;
+        return po ;
+    }
 }
+

--
Gitblit v1.8.0