From 1cf88d43994ec7ec403319032a9d118b39fe3571 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 25 四月 2025 14:35:35 +0800
Subject: [PATCH] 登录代码优化
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java | 531 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 531 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java
new file mode 100644
index 0000000..f5ff86e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java
@@ -0,0 +1,531 @@
+package com.dy.rtuMw.server.rtuData.p206V1;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1.DataV1;
+import com.dy.common.mw.protocol.p206V1.upVos.DataCd83CloseVo;
+import com.dy.common.mw.protocol.p206V1.upVos.DataCd83OpenVo;
+import com.dy.common.mw.protocol.p206V1.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V1.upVos.DataCdC0Vo;
+import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDayLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/8 19:00
+ * @Description 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+ */
+public class TkDealIntakeAmountDay extends TaskSurpport {
+
+ private static final Logger log = LogManager.getLogger(TkDealIntakeAmountDay.class.getName());
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealIntakeAmountDay";
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟: 鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲�
+ *
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ Data d = (Data) data;
+ DataV1 dV1 = (DataV1) d.getSubData();//鍓嶉潰浠诲姟宸茬粡鍒ゆ柇涓嶄负null
+ Object cdObj = dV1.subData;
+ /**
+ * 2025-01-11
+ * 鍘熸潵瀹炵幇鏈换鍔″姛鑳斤紝鏁版嵁浠�84锛�83锛孋0鍔熻兘鐮佹暟鎹腑鑾峰緱缁熻鏁版嵁锛屼絾鍚庢潵鏁版嵁涓鍔犱簡閲戦涓庡紑鍏抽榾娆℃暟锛�
+ * 浠庤�屼娇寰椾粠涓夌鏁版嵁涓粺璁℃暟鎹浉褰撳洶闅句笌鑷浉鐭涚浘锛屾墍浠ヤ慨鏀瑰疄鐜版柟寮忥紝鍙粠83鏁版嵁涓粺璁℃湰鏁版嵁锛屽苟涓斾粠鍑�
+ * 涓湀鏉ヨ繍琛屾暟鎹湅锛屽彧瑕佽澶囪兘涓婄嚎锛屽熀鏈笂鍚勭涓婃姤鏁版嵁閮借兘涓婃姤涓婃潵锛屾墍浠ユ病鏈夊繀椤讳粠84鍙奀0鏁版嵁涓粺璁℃暟鎹簡
+ * 鑷虫锛屾湰瀹炵幇鏂瑰紡涓绘案涔呭疄鐜版柟寮忥紝涓嶅啀淇敼鍥炲幓浜嗭紝瀹炶返璇佹槑锛屼互鍓嶇殑瀹炵幇鏂瑰紡鏁版嵁鏄粺璁′笉鍑嗙‘鐨勩��
+ */
+ if (cdObj != null
+ && (
+ //cdObj instanceof DataCdC0Vo ||
+ //cdObj instanceof DataCd84Vo ||
+ //cdObj instanceof DataCd83OpenVo ||
+ cdObj instanceof DataCd83CloseVo
+ )){
+ Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
+ DbSv sv = (DbSv)objs[0] ;
+ PrController controller = (PrController)objs[1] ;
+ try{
+ UpDataVo vo = new UpDataVo() ;
+ /*
+ if(cdObj instanceof DataCdC0Vo){
+ vo.valueFrom((DataCdC0Vo)cdObj, null, null, null);
+ }else if(cdObj instanceof DataCd84Vo){
+ vo.valueFrom(null, (DataCd84Vo)cdObj, null, null);
+ }else if(cdObj instanceof DataCd83OpenVo){
+ vo.valueFrom(null,null, (DataCd83OpenVo)cdObj,null);
+ }else */
+ if(cdObj instanceof DataCd83CloseVo){
+ vo.valueFrom(null,null,null, (DataCd83CloseVo)cdObj);
+ }
+ this.doDeal(sv, controller, d.getRtuAddr(), dV1, vo);
+ }catch (Exception e){
+ log.error("淇濆瓨鍙栨按鍙f棩鐢ㄦ按閲忓拰婕忔崯閲忔暟鎹椂鍙戠敓寮傚父", e);
+ }
+ }
+ }
+
+ /**
+ * 涓氬姟澶勭悊
+ * @param sv 鏈嶅姟
+ * @param controller 鎺у埗鍣ㄥ璞�
+ * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+ * @param dV1 涓婃姤鏁版嵁
+ * @param dataVo 涓婃姤鏁版嵁瀵硅薄
+ */
+ private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo dataVo) throws Exception {
+ RmIntakeAmountDayLast poLast = sv.getRmIntakeAmountLast(controller.getIntakeId());
+ if (poLast == null) {
+ //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鍙栨按鍙g殑鏃ュ彇姘撮噺鏁版嵁
+ //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
+ poLast = this.newRmIntakeAmountLast(controller, rtuAddr, dV1, dataVo);
+ this.newAndSaveRmIntakeAmountHistory(sv, controller, rtuAddr, dV1, dataVo, poLast);
+ sv.saveRmIntakeAmountLast(poLast);
+ } else {
+ if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).before(poLast.rtuDtLast)){
+ //RTU鏃堕挓鏃╀簬鏈湴RTU鏃堕挓锛屾槸琛ユ姤锛屼笉鐢ㄨˉ鎶ユ潵璁$畻鍙栨按鍙f棩绱鍙栨按閲忥紝鍥犱负閲囩敤鐨勬槸绱娴侀噺鐩稿樊鐨勮绠楁柟娉曪紝
+ //鍏跺疄琛ユ姤鐨勯噺鍊硷紝鍩轰簬鍓嶉潰涓婃姤鏁版嵁宸茬粡璁$畻鍖呭惈浜嗭紝鍙槸閲忓�煎綊缁撶殑鏃ユ湡涓嶆纭舰浜嗐��
+ }else if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataVo.rtuDt).equals(poLast.rtuDtLast)){
+ //RTU鏃堕挓绛変簬鏈湴RTU鏃堕挓锛岄噸澶嶄笂鎶ユ暟鎹紝涓嶈繘琛屼换浣曞鐞�
+ }else{
+ //涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿绗﹀悎璁$畻鐨勬潯浠�
+ if(!rtuAddr.equals(poLast.rtuAddrLast)){
+ //鏇存崲浜嗘帶鍒跺櫒锛屽鐞嗘柟娉曪細鍙洿鎹㈡帶鍒跺櫒鍦板潃锛屼笉杩涜姘撮噺璁$畻
+ //鍥犱负涓婅鏁版嵁涓殑鏃ユ湡鏃堕棿鏄彲杩涜璁$畻鐨�
+ if(DateTime.dateFrom_yyyy_MM_dd1(dV1.dt).equals(poLast.dt)){
+ //鍚屼竴澶╂暟鎹�
+ poLast = this.updateRmIntakeAmountLastBySameDateByControllerChange(poLast, controller, rtuAddr, dV1, dataVo);
+ RmIntakeAmountDay poHistory = null ;
+ if(poLast.lastHistoryId != null){
+ poHistory = sv.getRmIntakeAmountDay(poLast.lastHistoryId) ;
+ }
+ if(poHistory == null){
+ this.newAndSaveRmIntakeAmountHistory(sv, controller, rtuAddr, dV1, dataVo, poLast);
+ }else{
+ poHistory = this.updateRmIntakeAmountBySameDateByControllerChange(poHistory, poLast, controller, rtuAddr, dV1, dataVo);
+ sv.updateRmIntakeAmountDay(poHistory);
+ }
+ }else{
+ //闈炲悓涓�澶╋紝鎵�浠ユ柊鐢熸垚涓�涓巻鍙茶褰�
+ poLast = this.updateRmIntakeAmountLastByNewDateByControllerChange(poLast, controller, rtuAddr, dV1, dataVo);
+ this.newAndSaveRmIntakeAmountHistory(sv, controller, rtuAddr, dV1, dataVo, poLast);
+ }
+ }else{
+ //鏈洿鎹㈡帶鍒跺櫒
+ if(DateTime.dateFrom_yyyy_MM_dd1(dV1.dt).equals(poLast.dt)){
+ //鍚屼竴澶╂暟鎹�
+ poLast = this.updateRmIntakeAmountLastBySameDateNewData(poLast, controller, rtuAddr, dV1, dataVo);
+ RmIntakeAmountDay poHistory = null ;
+ if(poLast.lastHistoryId != null){
+ poHistory = sv.getRmIntakeAmountDay(poLast.lastHistoryId) ;
+ }
+ if(poHistory == null){
+ this.newAndSaveRmIntakeAmountHistory(sv, controller, rtuAddr, dV1, dataVo, poLast);
+ }else{
+ poHistory = this.updateRmIntakeAmountBySameDateNewData(poHistory, poLast, controller, rtuAddr, dV1, dataVo);
+ sv.updateRmIntakeAmountDay(poHistory);
+ }
+ }else if(DateTime.dateFrom_yyyy_MM_dd1(dV1.dt).after(poLast.dt)){
+ //鏂扮殑鏃ユ湡
+ poLast = this.updateRmIntakeAmountLastByNewDateNewData(poLast, controller, rtuAddr, dV1, dataVo);
+ this.newAndSaveRmIntakeAmountHistory(sv, controller, rtuAddr, dV1, dataVo, poLast);
+ }else{
+ //杩欑鎯呭喌涓嶅瓨鍦�
+ }
+ }
+ }
+ //鏇存柊鏈�鏂版暟鎹�
+ sv.updateRmIntakeAmountLast(poLast);
+ }
+ }
+
+ /**
+ * 鐢熸垚鏂扮殑鍙栨按鍙g敤姘寸粺璁℃渶鏂拌褰�
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDayLast newRmIntakeAmountLast(PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ RmIntakeAmountDayLast po = new RmIntakeAmountDayLast() ;
+ po.intakeId = controller==null?null:controller.getIntakeId();
+ po.controllerIdLast = controller==null?null:controller.getId();
+ po.totalAmountLast = cdData.totalAmount ;
+ po.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);
+ po.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ po.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+
+ po.amount = cdData.amount ;
+ po.money = cdData.money ;
+ po.times = 1 ;
+ /* 2025-01-11
+ if(cdData.isCloseValve != null && cdData.isCloseValve){
+ po.amount = cdData.amount ;
+ po.money = cdData.money ;
+ po.times = 1 ;
+ }else{
+ po.amount = 0.0D ;
+ po.money = 0.0D ;
+ po.times = 0 ;
+ }*/
+ po.rtuAddrLast = rtuAddr;
+ return po ;
+ }
+
+ /**
+ * 淇濆瓨鏂扮殑鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+ * @param sv
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @param poLast
+ * @throws Exception
+ * @return RmIntakeAmountDay
+ */
+ private RmIntakeAmountDay newAndSaveRmIntakeAmountHistory(DbSv sv, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData, RmIntakeAmountDayLast poLast)throws Exception {
+ RmIntakeAmountDay poHistory = new RmIntakeAmountDay() ;
+ poHistory.intakeId = controller==null?null:controller.getIntakeId();
+ poHistory.controllerIdLast = controller==null?null:controller.getId();
+ poHistory.rtuAddrLast = rtuAddr;
+ poHistory.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);
+ poHistory.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ poHistory.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+ poHistory.totalAmountLast = cdData.totalAmount ;
+
+ //2025-01-11
+ if(poLast != null){
+ poHistory.amount = poLast.amount ;
+ poHistory.money = poLast.money ;
+ poHistory.times = poLast.times ;
+ }else{
+ poHistory.amount = 0.0D ;
+ poHistory.money = 0.0D ;
+ poHistory.times = 0 ;
+ }
+
+ sv.saveRmIntakeAmountDay(poHistory);
+ //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+ poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+ return poHistory ;
+ }
+
+
+ /**
+ * 鍙栨按鍙f洿鎹簡鎺у埗鍣紝鍚屼竴澶╂暟鎹紝姝ゆ椂鍙洿鏂伴儴鍒嗗睘鎬�
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDayLast updateRmIntakeAmountLastBySameDateByControllerChange(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ lastPo.intakeId = controller==null?null:controller.getIntakeId();
+ lastPo.controllerIdLast = controller==null?null:controller.getId();
+ lastPo.rtuAddrLast = rtuAddr;
+ lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);
+ lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+ lastPo.totalAmountLast = cdData.totalAmount ;
+ //闃�鎺у櫒鏇存崲浜嗭紝骞朵笖鏄悓涓�澶╂暟鎹�
+ //鍙湁鍏抽榾鎶ユ暟鎹紙2025-01-11锛�
+ if(lastPo.amount == null){
+ lastPo.amount = cdData.amount ;
+ }else{
+ lastPo.amount += cdData.amount ;
+ }
+ if(lastPo.money == null){
+ lastPo.money = cdData.money ;
+ }else{
+ lastPo.money += cdData.money ;
+ }
+ if(lastPo.times == null){
+ lastPo.times = 1 ;
+ }else{
+ lastPo.times += 1 ;
+ }
+ /*
+ if(cdData.isCloseValve != null && cdData.isCloseValve.booleanValue()){
+ //鏄粠鍏抽榾鎶ヤ腑寰楀埌鐨勬暟鎹�
+ if(lastPo.amount == null){
+ lastPo.amount = cdData.amount ;
+ }else{
+ lastPo.amount += cdData.amount ;
+ }
+ if(lastPo.money == null){
+ lastPo.money = cdData.money ;
+ }else{
+ lastPo.money += cdData.money ;
+ }
+ if(lastPo.times == null){
+ lastPo.times = 1 ;
+ }else{
+ lastPo.times += 1 ;
+ }
+ }else{
+ //闈炲叧闃�鎶ユ暟鎹�
+ //涓嶄綔涓�
+ }*/
+ return lastPo ;
+ }
+
+ /**
+ * 鍙栨按鍙f洿鎹簡鎺у埗鍣ㄥ湪锛屾鏃跺彧鏇存柊閮ㄥ垎灞炴��
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDay updateRmIntakeAmountBySameDateByControllerChange(RmIntakeAmountDay po, RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ po.intakeId = controller==null?null:controller.getIntakeId();
+ po.controllerIdLast = controller==null?null:controller.getId();
+ po.rtuAddrLast = rtuAddr;
+ po.dt = lastPo.dt ;
+ po.dtLast = lastPo.dtLast;
+ po.rtuDtLast = lastPo.rtuDtLast;
+ po.totalAmountLast = lastPo.totalAmountLast ;
+
+ //闃�鎺у櫒鏇存崲浜嗭紝骞朵笖鏄悓涓�澶╂暟鎹�
+ //鍙湁鍏抽榾鎶ユ暟鎹紙2025-01-11锛�
+ po.amount = lastPo.amount ;
+ po.money = lastPo.money ;
+ po.times = lastPo.times ;
+
+ return po ;
+ }
+
+ /**
+ * 鍙栨按鍙f洿鎹簡鎺у埗鍣紝闈炲悓涓�澶╂暟鎹紝姝ゆ椂鏇存柊閮ㄥ垎灞炴��
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDayLast updateRmIntakeAmountLastByNewDateByControllerChange(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ lastPo.intakeId = controller==null?null:controller.getIntakeId();
+ lastPo.controllerIdLast = controller==null?null:controller.getId();
+ lastPo.rtuAddrLast = rtuAddr;
+ lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);
+ lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+ lastPo.totalAmountLast = cdData.totalAmount ;
+
+ //闃�鎺у櫒鏇存崲浜嗭紝骞朵笖鏄柊涓�澶╂暟鎹� 2025-01-11
+ lastPo.amount = cdData.amount ;
+ lastPo.money = cdData.money ;
+ lastPo.times = 1 ;
+
+ return lastPo ;
+ }
+
+
+
+ /**
+ * 鏀跺埌鍚屼竴澶╃殑鏂扮殑鏁版嵁锛岃繘琛屾洿鏂版暟鎹�
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDayLast updateRmIntakeAmountLastBySameDateNewData(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ lastPo.intakeId = controller==null?null:controller.getIntakeId();
+ lastPo.controllerIdLast = controller==null?null:controller.getId();
+ lastPo.rtuAddrLast = rtuAddr;
+ //lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);//鏃ユ湡娌″彉
+ lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+ if(cdData.totalAmount == 0.0F){
+ //鍙戠幇闃�鎺у櫒涓�涓猙ug锛岀粡甯镐笂鎶ョ疮璁℃祦閲忎负0锛屾帹娴嬫槸闃�鎺у櫒鏈兘浠庢按琛ㄩ噰闆嗗埌鏁版嵁鏃朵細涓婃姤0鍊�
+ //杩欑鎯呭喌鏁版嵁涓嶅仛澶勭悊
+ //濡傛灉姘磋〃鍒濆畨瑁咃紝鏈繘琛岃繃浠诲姟鍙栨按锛岄偅涔堢疮璁℃祦閲忎細鏄�0锛岃繖绉嶆儏鍐靛綋bug澶勭悊涔熸棤闃�
+ //涓婇潰鏃舵爣浣滀簡鏇存柊锛屼篃姝e父锛岀浉褰撲簬鏈涓婃姤鐨勭疮璁℃祦閲忎笌涓婃涓婃姤鐨勭疮璁℃祦閲忔暟鍊肩浉绛�
+ //lastPo.totalAmountLast = lastPo.totalAmountLast ;
+ //lastPo.amount = lastPo.amount; //鏈棩鐨勬棩绱姘撮噺淇濇寔涓嶅彉
+ }else {
+ lastPo.totalAmountLast = cdData.totalAmount;
+ }
+ //鏄悓涓�澶╂暟鎹�
+ //鍙湁鍏抽榾鎶ユ暟鎹紙2025-01-11锛�
+ if(lastPo.amount == null){
+ lastPo.amount = cdData.amount ;
+ }else{
+ lastPo.amount += cdData.amount ;
+ }
+ if(lastPo.money == null){
+ lastPo.money = cdData.money ;
+ }else{
+ lastPo.money += cdData.money ;
+ }
+ if(lastPo.times == null){
+ lastPo.times = 1 ;
+ }else{
+ lastPo.times += 1 ;
+ }
+
+ /* 2025-01-11
+ Double added = cdData.totalAmount - lastPo.totalAmountLast ;
+ if(added > 0){
+ if(lastPo.amount == null){
+ lastPo.amount = added ;
+ }else{
+ lastPo.amount += added ;
+ }
+ }else{
+ //鍙兘鏄洿鎹㈡按琛ㄤ簡锛屾柊琛ㄥ簳鍊兼瘮鍘熻〃搴曞�煎皬銆�
+ //鏈缃噺鍊间笉鍙橈紝涓嬫鍐嶄笂鎶ユ椂锛屽氨鑳芥甯歌绠椾簡銆�
+ //lastPo.amount = lastPo.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉
+ }
+
+ if(cdData.isCloseValve != null && cdData.isCloseValve.booleanValue()){
+ //鏄粠鍏抽榾鎶ヤ腑寰楀埌鐨勬暟鎹�
+ if(lastPo.money == null){
+ lastPo.money = cdData.money ;
+ }else{
+ lastPo.money += cdData.money ;
+ }
+ if(lastPo.times == null){
+ lastPo.times = 1 ;
+ }else{
+ lastPo.times += 1 ;
+ }
+ }else{
+ //闈炲叧闃�鎶ユ暟鎹�
+ //涓嶄綔涓�
+ }
+ */
+
+ return lastPo ;
+ }
+
+ /**
+ * 鍥犳敹鍒版柊鐨勪竴澶╃殑鏂扮殑鏁版嵁鍚庯紝杩涜鏇存柊鏁版嵁
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDayLast updateRmIntakeAmountLastByNewDateNewData(RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ lastPo.intakeId = controller==null?null:controller.getIntakeId();
+ lastPo.controllerIdLast = controller==null?null:controller.getId();
+ lastPo.rtuAddrLast = rtuAddr;
+ lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);//鏃ユ湡鍙樹簡
+ lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt);
+ lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
+ lastPo.totalAmountLast = cdData.totalAmount ;
+
+ //鏂扮殑涓�澶╂暟鎹� 2025-01-11
+ lastPo.amount = cdData.amount ;
+ lastPo.money = cdData.money ;
+ lastPo.times = 1 ;
+
+ /*
+ if(cdData.totalAmount == 0.0F){
+ //鍙戠幇闃�鎺у櫒涓�涓猙ug锛岀粡甯镐笂鎶ョ疮璁℃祦閲忎负0锛屾帹娴嬫槸闃�鎺у櫒鏈兘浠庢按琛ㄩ噰闆嗗埌鏁版嵁鏃朵細涓婃姤0鍊�
+ //杩欑鎯呭喌鏁版嵁涓嶅仛澶勭悊
+ //濡傛灉姘磋〃鍒濆畨瑁咃紝鏈繘琛岃繃浠诲姟鍙栨按锛岄偅涔堢疮璁℃祦閲忎細鏄�0锛岃繖绉嶆儏鍐靛綋bug澶勭悊涔熸棤闃�
+ //涓婇潰鏃舵爣浣滀簡鏇存柊锛屼篃姝e父锛岀浉褰撲簬鏈涓婃姤鐨勭疮璁℃祦閲忎笌涓婃涓婃姤鐨勭疮璁℃祦閲忔暟鍊肩浉绛�
+ //lastPo.totalAmountLast = lastPo.totalAmountLast ;
+ lastPo.amount = 0.0D; //鏂扮殑涓�澶╃殑鏃ョ疮璁℃按閲忕疆0
+ }else{
+ Double added = cdData.totalAmount - lastPo.totalAmountLast ;
+ if(added > 0){
+ //鏂扮殑涓�澶╃殑澶勭悊鏂瑰紡涓庡悓涓�澶╃殑澶勭悊鏂瑰紡涓嶄竴鏍�
+ lastPo.amount = added;
+ }else{
+ //鍙兘鏄洿鎹㈡按琛ㄤ簡锛屾柊琛ㄥ簳鍊兼瘮鍘熻〃搴曞�煎皬銆�
+ //鏈缃�0锛屼笅娆″啀涓婃姤鏃讹紝灏辫兘姝e父璁$畻浜嗐��
+ lastPo.amount = 0.0D; //鏃ョ疮璁℃按閲忓綊0
+ }
+ }
+ if(cdData.isCloseValve != null && cdData.isCloseValve.booleanValue()){
+ //鏄粠鍏抽榾鎶ヤ腑寰楀埌鐨勬暟鎹�
+ lastPo.money = cdData.money ;
+ lastPo.times = 1 ;
+ }else{
+ //闈炲叧闃�鎶ユ暟鎹�
+ //涓嶄綔涓�
+ }
+ */
+
+ return lastPo ;
+ }
+
+
+ /**
+ * 鏇存柊鍘嗗彶璁板綍
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param cdData
+ * @return
+ * @throws Exception
+ */
+ private RmIntakeAmountDay updateRmIntakeAmountBySameDateNewData(RmIntakeAmountDay po, RmIntakeAmountDayLast lastPo, PrController controller, String rtuAddr, DataV1 dV1, UpDataVo cdData)throws Exception {
+ po.intakeId = controller==null?null:controller.getIntakeId();
+ po.controllerIdLast = controller==null?null:controller.getId();
+ po.rtuAddrLast = rtuAddr;
+ po.dt = lastPo.dt ;
+ po.dtLast = lastPo.dtLast;
+ po.rtuDtLast = lastPo.rtuDtLast;
+ po.totalAmountLast = lastPo.totalAmountLast ;
+
+ po.amount = lastPo.amount ;//姝ゆ椂lastPo.amount宸茬粡澧炲姞涓婁簡澧為噺
+ po.money = lastPo.money ;//姝ゆ椂lastPo.money宸茬粡澧炲姞涓婁簡澧為噺
+ po.times = lastPo.times ;//姝ゆ椂lastPo.times宸茬粡澧炲姞涓婁簡澧為噺
+
+ return po ;
+ }
+
+
+ public class UpDataVo{
+ public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆�
+ public Double amount; //鍐滄埛鐢ㄦ按閲�
+ public Double money ;//鍐滄埛娑堣垂閲戦
+ public Boolean isCloseValve ;//鏄惁鏄叧闃�涓婃姤
+ public String rtuDt ;//鎺у埗鍣ㄦ椂閽�
+
+ public void valueFrom(DataCdC0Vo voC0, DataCd84Vo vo84, DataCd83OpenVo vo83Op, DataCd83CloseVo vo83Cl){
+ /*
+ if(voC0 != null){
+ this.totalAmount = voC0.totalAmount ;
+ this.rtuDt = voC0.rtuDt ;
+ }else if(vo84 != null){
+ this.totalAmount = vo84.totalAmount ;
+ this.rtuDt = vo84.rtuDt ;
+ }else if(vo83Op != null){
+ this.totalAmount = vo83Op.totalAmount ;
+ this.rtuDt = vo83Op.rtuDt ;
+ }else if(vo83Cl != null){ */
+ this.totalAmount = vo83Cl.totalAmount ;
+ this.amount = vo83Cl.thisAmount ;
+ this.money = vo83Cl.thisMoney ;
+ this.isCloseValve = true ;
+ this.rtuDt = vo83Cl.rtuDt ;
+ /*} */
+ }
+
+ }
+
+
+
+}
--
Gitblit v1.8.0