From b1dc9988b9587add132a01faa6bc09e162fe1491 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 08 七月 2024 21:39:38 +0800
Subject: [PATCH] 1、开关阀报中增加农户关联; 2、工作报中增加农户关联; 3、取水口损失流量完善; 4、实现取水日取水量统计。

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java |  262 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 150 insertions(+), 112 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index 802e440..cfe155c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -3,10 +3,12 @@
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
 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 com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import org.apache.logging.log4j.LogManager;
@@ -27,7 +29,6 @@
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
     public static final String taskId = "TkDealCloseValveReport" ;
-
     /**
      * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄥ叧闃�涓婃姤
      * @param data 闇�瑕佸鐞嗙殑鏁版嵁
@@ -35,82 +36,140 @@
     @Override
     public void execute(Object data) {
         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.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
-//                }catch (Exception e){
-//                    log.error("淇濆瓨鎺у埗鍣ㄥ叧闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
-//                }
-//            }
+        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();
+        Object cdObj = dV1_0_1.subData;
+        if (cdObj != null && cdObj instanceof DataCd83CloseVo) {
+            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+            DbSv sv = (DbSv)objs[0] ;
+            PrController controller = (PrController)objs[1] ;
+            SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
+            try{
+                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd83CloseVo)cdObj) ;
+            }catch (Exception e){
+                log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+            }
         }
     }
+
     /**
      * 淇濆瓨鏁版嵁
      * @param sv 鏈嶅姟
+     * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
+     * @param clientVo 鍐滄埛瀵硅薄
      * @param controller 鎺у埗鍣ㄥ璞�
      * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
      * @param dV1_0_1 涓婃姤鏁版嵁
      * @param dataCd83CloseVo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
      */
-    private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
-        RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ;
+    private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception {
+        RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ;
         if(poLast == null){
             //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁
             //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
-            poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
-            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+            poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo);
+            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
             //淇濆瓨鏈�鏂版暟鎹�
             sv.saveRmOpenCloseValveLast(poLast);
         }else{
+            //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
+            if(poLast.closeDt != null && poLast.clIcCardAddr != null && poLast.clIcCardNo != null){
+                if(poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))
+                        && poLast.clIcCardAddr.equals(dataCd83CloseVo.icCardAddr)
+                        && poLast.clIcCardNo.equals(dataCd83CloseVo.icCardNo)){
+                    //閲嶅涓婃姤锛屽師鍥犳槸涓嬭鏁版嵁澶勭悊鎱簡锛屽氨閲嶅涓婃姤浜�
+                    return ;
+                }
+            }
             if(poLast.clType == null){
-                //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�锛屼繚鐣欏師璁板綍涓殑寮�闃�鏁版嵁
-                this.updateCloseValve(controller, poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
-                if(poLast.opType == null){
-                    //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁锛屾病鍔炴硶杩涜鍖归厤
+                //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�
+                if(poLast.opType == null || poLast.openDt == null){
+                    //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁(鍗冲紑闃�涓庡叧闃�鏁版嵁閮芥病鏈夛紝杩欑鎯呭喌涓�鑸笉瀛樺湪)锛屾病鍔炴硶杩涜鍖归厤
                     //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
                 }else{
                     //鍘熻褰曚腑瀛樺湪寮�闃�鏁版嵁锛岃繘琛屽巻鍙叉暟鎹尮閰�
                     RmOpenCloseValveHistory poHistory = null ;
                     if(poLast.lastHistoryId != null){
                         poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
                         if(poHistory != null){
-                            sv.updateRmOpenCloseValveHistory(poHistory);
+                            if(poHistory.openDt != null){
+                                //涓婇潰宸茬粡鍒ゆ柇浜唒oLast.openDt == null锛屾墍浠ユ澶勪竴鑸細鏄痯oHistory.openDt != null
+                                if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
+                                    //鍖归厤鎴愬姛
+                                    //褰撳墠鍏抽榾鏄師璁板綍涓紑闃�鐨勫搴斿叧闃�
+                                    this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83CloseVo, false) ;
+                                    sv.updateRmOpenCloseValveHistory(poHistory);
+                                }else if(poHistory.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
+                                    //鍖归厤澶辫触(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                                    //鏈湴鏈�鏂版暟鎹腑鐨勫紑闃�鏃堕棿鏅氫簬褰撳墠鍏抽榾涓婃姤涓殑寮�闃�鏃堕棿锛岃鏄庢槸琛ユ姤
+                                    this.dealSupplyReport() ;
+                                }else{
+                                    //鍖归厤澶辫触
+                                    //鏈湴鏈�鏂版暟鎹腑鐨勫紑闃�鏃堕棿鏃╀簬褰撳墠鍏抽榾涓婃姤涓殑寮�闃�鏃堕棿锛岃鏄庢槸鏂扮殑涓�娆″叧闃�鎶ワ紝鑰屼笖瀵瑰簲鍏抽榾鎶ョ殑涓婁竴娆″紑闃�鎶ユ湭鏀跺埌
+                                    this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                                }
+                            }else{
+                                //杩欑鎯呭喌涓嶅瓨鍦紝璁や负鍖归厤澶辫触
+                                //褰撳墠鍏抽榾涓嶆槸鍘熻褰曚腑寮�闃�鐨勫搴斿叧闃�锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+                                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
+                            }
                         }else{
-                            //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                            this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                            //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                         }
                     }else{
-                        //娌℃湁鍘嗗彶鏁版嵁锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
-                        this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                        //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+                        this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, true);
                     }
                 }
             }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))){
+                if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
                     //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+                }else if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt))){
+                    //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+                    this.dealSupplyReport() ;
                 }else {
-                    //褰撳墠涓婃姤鐨勫叧闃�鏁版嵁鏅氫簬鍘熸潵鐨勫叧闃�鏁版嵁锛屾槸鏂扮殑涓婃姤鍏抽榾鏁版嵁
-                    this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                    //鏄柊鐨勪笂鎶ュ叧闃�鏁版嵁
+                    //杩涜鍘嗗彶鏁版嵁鍖归厤
+                    RmOpenCloseValveHistory poHistory = null ;
+                    if(poLast.lastHistoryId != null) {
+                        poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId);
+                        if (poHistory != null) {
+                            if(poHistory.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt))){
+                                //鍖归厤涓婁簡
+                                this.updateCloseValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83CloseVo, false) ;
+                                sv.updateRmOpenCloseValveHistory(poHistory);
+                            }else{
+                                //涓婁釜鍏抽榾鎶ユ湭涓婃姤
+                                this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                            }
+                        }else{
+                            //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+                            this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                            this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                        }
+                    }else{
+                        //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+                        this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                        this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
+                    }
                 }
             }else{
                 //if(po.opType == null)
-                //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
-                this.updateCloseValve(controller,poLast, null, dV1_0_1, dataCd83CloseVo, false) ;
-                //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
-                this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast);
+                //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊锛屼篃璁や负涓婁釜鍏抽榾鎶ユ湭涓婃姤
+                this.updateCloseValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83CloseVo, true) ;
+                //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屾病鏈夊搴旂殑寮�鍙戞暟鎹�
+                this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo, poLast, null);
             }
 
             sv.updateRmOpenCloseValveLast(poLast);
         }
+    }
+
+    private void dealSupplyReport(){
+
     }
 
     /**
@@ -121,17 +180,29 @@
      * @param dV1_0_1
      * @param dataCd83CloseVo
      * @param poLast
+     * @param clearLastOpenValue
      * @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) ;
+    private void newHistoryDataDeal(DbSv sv,
+                                   SeClient clientVo,
+                                    PrController controller,
+                                    String rtuAddr,
+                                    DataV1_0_1 dV1_0_1,
+                                    DataCd83CloseVo dataCd83CloseVo,
+                                    RmOpenCloseValveLast poLast,
+                                    Boolean clearLastOpenValue)throws Exception {
+        RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV1_0_1, dataCd83CloseVo) ;
         sv.saveRmOpenCloseValveHistory(poHistory);
         //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
         poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+        if(clearLastOpenValue != null && clearLastOpenValue.booleanValue()){
+            poLast.clearOpenValue();
+        }
     }
 
     /**
      * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鏈�鏂版暟鎹褰�
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -139,27 +210,25 @@
      * @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)) ;
+    private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo,
+                                                         PrController controller,
+                                                         String rtuAddr,
+                                                         DataV1_0_1 dV1_0_1,
+                                                         DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveLast po = new RmOpenCloseValveLast() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
+        po.controllerId = controller==null?null:controller.getId() ;
+        po.intakeId = controller==null?null:controller.getIntakeId() ;
+        po.rtuAddr = rtuAddr ;
+        po.valueFrom(dV1_0_1, dataCd83CloseVo);
         return po ;
     }
 
 
     /**
      * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+     * @param clientVo
      * @param controller
      * @param rtuAddr
      * @param dV1_0_1
@@ -167,86 +236,55 @@
      * @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)) ;
+    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo,
+                                                               PrController controller,
+                                                               String rtuAddr,
+                                                               DataV1_0_1 dV1_0_1,
+                                                               DataCd83CloseVo dataCd83CloseVo)throws Exception {
+        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory() ;
+        po.clientId = clientVo==null?null:clientVo.getId() ;
+        po.clientName = clientVo==null?null:clientVo.getName() ;
+        po.controllerId = controller==null?null:controller.getId() ;
+        po.intakeId = controller==null?null:controller.getIntakeId() ;
+        po.rtuAddr = rtuAddr ;
+        po.valueFrom(dV1_0_1, dataCd83CloseVo);
         return po ;
     }
 
 
     /**
      * 鏇存柊鏁版嵁
+     * @param clientVo
      * @param controller
      * @param poLast
      * @param poHistory
      * @param dV1_0_1
      * @param dataCd83CloseVo
-     * @param clearOpenValve
+     * @param clearLastOpenValue
      * @throws Exception
      */
-    private void updateCloseValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception {
+    private void updateCloseValve(SeClient clientVo,
+                                  PrController controller,
+                                  RmOpenCloseValveLast poLast,
+                                  RmOpenCloseValveHistory poHistory,
+                                  DataV1_0_1 dV1_0_1,
+                                  DataCd83CloseVo dataCd83CloseVo,
+                                  boolean clearLastOpenValue) throws Exception {
+        poLast.clientId = clientVo==null?null:clientVo.getId() ;
+        poLast.clientName = clientVo==null?null:clientVo.getName() ;
         poLast.controllerId = controller==null?null:controller.getId();
         poLast.intakeId = controller==null?null:controller.getIntakeId();
 
-        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) ;
+        poLast.updateFrom(dV1_0_1, dataCd83CloseVo, clearLastOpenValue);
 
         if(poHistory != null){
+            poHistory.clientId = clientVo==null?null:clientVo.getId() ;
+            poHistory.clientName = clientVo==null?null:clientVo.getName() ;
             poHistory.controllerId = controller==null?null:controller.getId();
             poHistory.intakeId = controller==null?null:controller.getIntakeId();
 
-            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 ;
+            poHistory.updateFrom(dV1_0_1, dataCd83CloseVo, false);
         }
 
-        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