From 4342b12d28b15e61bbed4d4d5e64a6a2bacae952 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 27 二月 2024 12:56:11 +0800
Subject: [PATCH] 1、完善代码; 2、实现开闭上报处理

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

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index 56d8170..a1f0a25 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -2,7 +2,13 @@
 
 import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.aceMw.server.rtuData.dbSv.DbSv;
-import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.DataCd83CloseVo;
+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.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -28,9 +34,215 @@
      */
     @Override
     public void execute(Object data) {
-        Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
-        DbSv sv = (DbSv)objs[0] ;
-        PrControllerTramp rtuTramp = (PrControllerTramp)objs[2] ;
-        sv.savePrConctrollerTramp(rtuTramp);
+        Data d = (Data) data;
+        Object subD = d.getSubData();
+        if (subD != null) {
+            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
+            if (dV1_0_1 != null && dV1_0_1.dataCd83CloseVo != null) {
+                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+                DbSv sv = (DbSv)objs[0] ;
+                PrController controller = (PrController)objs[1] ;
+                try{
+                    this.dealSave(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
+                }catch (Exception e){
+                    log.error("淇濆瓨鎺у埗鍣ㄥ叧闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+                }
+            }
+        }
+    }
+    /**
+     * 淇濆瓨鏁版嵁
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param dV1_0_1 涓婃姤鏁版嵁
+     * @param dataCd83CloseVo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
+     */
+    private void dealSave(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
+        RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
+        if(poLast == null){
+            //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛樺巻鍙叉暟鎹�
+            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
+            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+            //淇濆瓨鏈�鏂版暟鎹�
+            sv.saveRmOpenCloseValveLast(poLast);
+        }else{
+            //if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt).equals(poLast.closeDt)){
+            //    //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊
+            //}else{
+                if(poLast.clType == null){
+                    //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�锛屼繚鐣欏師璁板綍寮�闃�鏁版嵁
+                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    if(poLast.opType == null){
+                        //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁锛屾病鍔炶繘琛屽尮閰�
+                        //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    }else{
+                        //鍘熻褰曚腑瀛樺湪寮�闃�鏁版嵁锛岃繘琛屽巻鍙叉暟鎹尮閰�
+                        RmOpenCloseValveHistory poHistory = null ;
+                        if(poLast.lastHistoryId != null){
+                            poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
+                            if(poHistory != null){
+                                sv.updateRmOpenCloseValveHistory(poHistory);
+                            }else{
+                                //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+                                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                            }
+                        }else{
+                            //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+                            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                        }
+                    }
+                }else if(poLast.opType != null){
+                    //鍘熻褰曞瓨鍦ㄥ叧闃�鏁版嵁锛屼篃瀛樺湪寮�闃�鏁版嵁锛岄鍏堣繘琛屽紑鍏抽榾鏃堕棿瀵规瘮
+                    if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                        //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁锛屼笉杩涜澶勭悊
+                    }else if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                        //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+                    }else {
+                        //褰撳墠涓婃姤鐨勫叧闃�鏁版嵁鏅氫簬鍘熸潵鐨勫叧闃�鏁版嵁锛屾槸鏂扮殑涓婃姤鍏抽榾鏁版嵁
+                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    }
+                }else{
+                    //if(po.opType == null)
+                    //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
+                    this.updateCloseValve(poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
+                    //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                }
+
+                sv.updateRmOpenCloseValveLast(poLast);
+            //}
+        }
+    }
+
+    /**
+     * 淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+     * @param sv
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @param poLast
+     * @throws Exception
+     */
+    private void newHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, RmOpenCloseValveLast poLast)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83CloseVo) ;
+        sv.saveRmOpenCloseValveHistory(poHistory);
+        //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+        poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+    }
+
+    /**
+     * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鏈�鏂版暟鎹褰�
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @return
+     * @throws Exception
+     */
+    private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                null, null, null, null, null, null,null,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                dataCd83CloseVo.type,
+                dataCd83CloseVo.totalAmount,
+                dataCd83CloseVo.icCardNo,
+                dataCd83CloseVo.icCardAddr,
+                dataCd83CloseVo.remainMoney,
+                dataCd83CloseVo.thisAmount,
+                dataCd83CloseVo.thisMoney,
+                dataCd83CloseVo.thisTime,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
+        return po ;
+    }
+
+
+    /**
+     * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param controller
+     * @param rtuAddr
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @return
+     * @throws Exception
+     */
+    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+                rtuAddr,
+                null, null, null, null, null, null,null,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+                dataCd83CloseVo.type,
+                dataCd83CloseVo.totalAmount,
+                dataCd83CloseVo.icCardNo,
+                dataCd83CloseVo.icCardAddr,
+                dataCd83CloseVo.remainMoney,
+                dataCd83CloseVo.thisAmount,
+                dataCd83CloseVo.thisMoney,
+                dataCd83CloseVo.thisTime,
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
+                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
+        return po ;
+    }
+
+
+    /**
+     * 鏇存柊鏁版嵁
+     * @param poLast
+     * @param poHistory
+     * @param dV1_0_1
+     * @param dataCd83CloseVo
+     * @param clearOpenValve
+     * @throws Exception
+     */
+    private void updateCloseValve(RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+        poLast.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
+        poLast.clType = dataCd83CloseVo.type;
+        poLast.clTotalAmount = dataCd83CloseVo.totalAmount;
+        poLast.clIcCardNo = dataCd83CloseVo.icCardNo;
+        poLast.clIcCardAddr = dataCd83CloseVo.icCardAddr;
+        poLast.clRemainMoney = dataCd83CloseVo.remainMoney;
+        poLast.clThisAmount = dataCd83CloseVo.thisAmount;
+        poLast.clThisMoney = dataCd83CloseVo.thisMoney;
+        poLast.clThisTime = dataCd83CloseVo.thisTime;
+        poLast.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt);
+        poLast.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ;
+
+        if(poHistory != null){
+            poHistory.clDt = poLast.clDt;
+            poHistory.clType = dataCd83CloseVo.type;
+            poHistory.clTotalAmount = dataCd83CloseVo.totalAmount;
+            poHistory.clIcCardNo = dataCd83CloseVo.icCardNo;
+            poHistory.clIcCardAddr = dataCd83CloseVo.icCardAddr;
+            poHistory.clRemainMoney = dataCd83CloseVo.remainMoney;
+            poHistory.clThisAmount = dataCd83CloseVo.thisAmount;
+            poHistory.clThisMoney = dataCd83CloseVo.thisMoney;
+            poHistory.clThisTime = dataCd83CloseVo.thisTime;
+            poHistory.clOpenDt = poLast.clOpenDt;
+            poHistory.closeDt = poLast.closeDt ;
+        }
+
+        if(clearOpenValve){
+            poLast.opDt = null ;
+            poLast.opType = null ;
+            poLast.opTotalAmount = null ;
+            poLast.opIcCardNo = null ;
+            poLast.opIcCardAddr = null ;
+            poLast.opRemainMoney = null ;
+            poLast.openDt = null ;
+
+            if(poHistory != null) {
+                poHistory.opDt = null ;
+                poHistory.opType = null ;
+                poHistory.opTotalAmount = null ;
+                poHistory.opIcCardNo = null ;
+                poHistory.opIcCardAddr = null ;
+                poHistory.opRemainMoney = null ;
+                poHistory.openDt = null ;
+            }
+        }
     }
 }

--
Gitblit v1.8.0