From 161ea810e369955f42665ffa06269abbce133bb8 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 08 八月 2024 10:20:47 +0800 Subject: [PATCH] 1、通信中间件实现上行数据任务:更新物理卡和虚拟卡的剩余金额; 2、完善代码。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java | 152 +++++++++++++++++++++++++++++--------------------- 1 files changed, 87 insertions(+), 65 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java index ec3519d..bf4f33d 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java @@ -5,9 +5,11 @@ import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo; import com.dy.common.util.DateTime; +import com.dy.pipIrrGlobal.pojoBa.BaClient; 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; @@ -40,8 +42,9 @@ 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, controller, d.getRtuAddr(), dV1_0_1, (DataCd83OpenVo)cdObj) ; + this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1_0_1, (DataCd83OpenVo)cdObj) ; }catch (Exception e){ log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e); } @@ -50,82 +53,84 @@ /** * 涓氬姟澶勭悊 * @param sv 鏈嶅姟 + * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級 * @param controller 鎺у埗鍣ㄥ璞� * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� * @param dV1_0_1 涓婃姤鏁版嵁 * @param dataCd83OpenVo 寮�闃�涓婃姤鏁版嵁瀵硅薄 */ - private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception { - RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ; + private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception { + RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ; if(poLast == null){ //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁 //棣栧厛鐢熸垚寮�鍏抽榾鐨勬渶鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛� - poLast = this.newRmOpenCloseValveLast(controller, rtuAddr, dV1_0_1, dataCd83OpenVo); - this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); + poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo); + this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); sv.saveRmOpenCloseValveLast(poLast); }else{ //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁 - if(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt).equals(poLast.openDt)){ - //鏃堕棿涓�鑷达紝閲嶅涓婃姤鏁版嵁锛屼笉杩涜浠讳綍澶勭悊 - //log.error("娴嬭瘯寮�闃�鏃ユ湡涓�鑷�"); - }else{ - if(poLast.opType != null){ - //鍘熻褰曞瓨鍦ㄥ紑闃�鏁版嵁锛岄鍏堣繘琛屾椂闂村姣� - if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ - //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鏁版嵁锛屼笉杩涜澶勭悊 - }else if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ - //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊 - }else{ - //褰撳墠寮�闃�涓婃姤鏄柊鐨勪竴娆″紑闃�锛屼笉绠″師璁板綍鏄惁瀛樺湪鍏抽榾鏁版嵁锛屼竴寰嬫竻绌哄叧闃�鏁版嵁 - this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; - //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 - this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); - } - }else if(poLast.clType != null){ - //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁锛屼絾瀛樺湪鍏抽榾鏁版嵁锛岄鍏堣繘琛屾椂闂存瘮瀵� - if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ - //褰撳墠涓婃姤鏄ˉ鎶ョ殑寮�闃�鏁版嵁 - RmOpenCloseValveHistory poHistory = null ; - if(poLast.lastHistoryId != null){ - poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; - } - this.updateOpenValve(controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ; - if(poHistory != null){ - sv.updateRmOpenCloseValveHistory(poHistory); - } - }else if(poLast.closeDt != null && poLast.closeDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ - //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁锛屾妸鏈�鏂版暟鎹腑鐨勫叧闃�鍐呭娓呯┖ - this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; - //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 - this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); - }else { - //褰撳墠涓婃姤鐨勫紑闃�鏁版嵁涓庡師鏉ョ殑鍏抽榾鏁版嵁鍚屼竴鏃堕棿锛岃繖绉嶆儏鍐靛簲璇ヤ笉瀛樺湪锛屼絾涔熷鐞� - RmOpenCloseValveHistory poHistory = null ; - if(poLast.lastHistoryId != null){ - poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; - } - this.updateOpenValve(controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ; - if(poHistory != null){ - sv.updateRmOpenCloseValveHistory(poHistory); - } - } - }else{ - //if(po.clType == null) - //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊 - this.updateOpenValve(controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; - //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 - this.newHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); + if(poLast.openDt != null && poLast.opIcCardAddr != null && poLast.opIcCardNo != null){ + if(poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt)) + && poLast.opIcCardAddr.equals(dataCd83OpenVo.icCardAddr) + && poLast.opIcCardNo.equals(dataCd83OpenVo.icCardNo)){ + //閲嶅涓婃姤锛屽師鍥犳槸涓嬭鏁版嵁澶勭悊鎱簡锛屽氨閲嶅涓婃姤浜� + return ; } - - sv.updateRmOpenCloseValveLast(poLast); + } + if(poLast.opType != null){ + //鍘熻褰曞瓨鍦ㄥ紑闃�鏁版嵁锛岄鍏堣繘琛屾椂闂村姣� + if(poLast.openDt != null && poLast.openDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ + //閲嶅涓婃姤鐨勫紑闃�鏁版嵁锛屼笉杩涜澶勭悊 + }else if(poLast.openDt != null && poLast.openDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ + //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鏁版嵁(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true) + this.dealSupplyReport() ; + }else { + //褰撳墠寮�闃�涓婃姤鏄柊鐨勪竴娆″紑闃�锛屼笉绠″師璁板綍鏄惁瀛樺湪鍏抽榾鏁版嵁锛屼竴寰嬫竻绌哄叧闃�鏁版嵁 + this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; + //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 + this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); + } + }else if(poLast.clType != null){ + //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁锛屼絾瀛樺湪鍏抽榾鏁版嵁锛岄鍏堣繘琛屾椂闂存瘮瀵� + if(poLast.clOpenDt != null && poLast.clOpenDt.before(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ + //褰撳墠涓婃姤鏄柊鐨勫紑闃�鏁版嵁锛屾妸鏈�鏂�(last)鏁版嵁涓殑鍏抽榾鍐呭娓呯┖ + this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; + //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 + this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); + }else if(poLast.clOpenDt != null && poLast.clOpenDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt))){ + //琛ユ姤鐨勮涔呬箣鍓嶇殑寮�闃�鎶ユ暟鎹�(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true) + this.dealSupplyReport() ; + }else { + //褰撳墠涓婃姤鐨勫紑闃�鏁版嵁涓庡師鏉ョ殑鍏抽榾鏁版嵁鍚屼竴鏃堕棿锛岃繖绉嶆儏鍐靛簲璇ヤ笉瀛樺湪锛屼絾涔熷鐞� + RmOpenCloseValveHistory poHistory = null ; + if(poLast.lastHistoryId != null){ + poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ; + } + this.updateOpenValve(clientVo, controller, poLast, poHistory, dV1_0_1, dataCd83OpenVo, false) ; + if(poHistory != null){ + sv.updateRmOpenCloseValveHistory(poHistory); + } + } + }else{ + //if(poLast.opType == null && po.clType == null) + //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊 + this.updateOpenValve(clientVo, controller, poLast, null, dV1_0_1, dataCd83OpenVo, true) ; + //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 + this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo, poLast); } + sv.updateRmOpenCloseValveLast(poLast); } + } + + private void dealSupplyReport(){ + } /** * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId * @param sv + * @param clientVo * @param controller * @param rtuAddr * @param dV1_0_1 @@ -133,8 +138,8 @@ * @param poLast * @throws Exception */ - private void newHistoryDataDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception { - RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(controller, rtuAddr, dV1_0_1, dataCd83OpenVo) ; + private void newHistoryDataDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception { + RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV1_0_1, dataCd83OpenVo) ; sv.saveRmOpenCloseValveHistory(poHistory); //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇� poLast.lastHistoryId = poHistory == null ? null: poHistory.id ; @@ -142,6 +147,7 @@ /** * 鐢熸垚鏂扮殑寮�闃�涓婃姤鏈�鏂版暟鎹褰� + * @param clientVo * @param controller * @param rtuAddr * @param dV1_0_1 @@ -149,8 +155,10 @@ * @return * @throws Exception */ - private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception { + private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)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 ; @@ -161,6 +169,7 @@ /** * 鐢熸垚鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍 + * @param clientVo * @param controller * @param rtuAddr * @param dV1_0_1 @@ -168,8 +177,10 @@ * @return * @throws Exception */ - private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)throws Exception { + private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo)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 ; @@ -180,23 +191,34 @@ /** * 鏇存柊鏁版嵁 + * @param clientVo * @param controller * @param poLast * @param poHistory * @param dV1_0_1 * @param dataCd83OpenVo - * @param clearCloseValve + * @param clearLastCloseValve * @throws Exception */ - private void updateOpenValve(PrController controller, RmOpenCloseValveLast poLast, RmOpenCloseValveHistory poHistory, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception { + private void updateOpenValve(SeClient clientVo, + PrController controller, + RmOpenCloseValveLast poLast, + RmOpenCloseValveHistory poHistory, + DataV1_0_1 dV1_0_1, + DataCd83OpenVo dataCd83OpenVo, + boolean clearLastCloseValve) 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.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve); + poLast.updateFrom(dV1_0_1, dataCd83OpenVo, clearLastCloseValve); if(poHistory != null){ + poLast.clientId = clientVo==null?null:clientVo.getId() ; + poLast.clientName = clientVo==null?null:clientVo.getName() ; poHistory.controllerId = controller==null?null:controller.getId(); poHistory.intakeId = controller==null?null:controller.getIntakeId(); - poHistory.updateFrom(dV1_0_1, dataCd83OpenVo, clearCloseValve); + poHistory.updateFrom(dV1_0_1, dataCd83OpenVo, false); } } } -- Gitblit v1.8.0