From 4b99aedffe4e64425c059611dbb89d7d28b9ed06 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 07 五月 2025 15:28:04 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 251 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
new file mode 100644
index 0000000..3a8dfa6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
@@ -0,0 +1,251 @@
+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.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.msCenter.MsCenterUnit;
+import com.dy.rtuMw.server.msCenter.MsObj;
+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/1/16 17:16
+ * @LastEditTime 2024/1/16 17:16
+ * @Description
+ * 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
+ */
+public class TkDealOpenValveReport extends TaskSurpport {
+
+ private static final Logger log = LogManager.getLogger(TkDealOpenValveReport.class.getName()) ;
+
+ //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+ public static final String taskId = "TkDealOpenValveReport" ;
+
+ /**
+ * 鎵ц鑺傜偣浠诲姟: 澶勭悊鎺у埗鍣ㄥ紑闃�涓婃姤
+ * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+ */
+ @Override
+ public void execute(Object data) {
+ Data d = (Data) data;
+ DataV1 dV1 = (DataV1) d.getSubData();
+ Object cdObj = dV1.subData;
+ if (cdObj != null && cdObj instanceof DataCd83OpenVo) {
+ 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.toMsCenter(clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ;
+ this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ;
+ }catch (Exception e){
+ log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+ }
+
+ /**
+ * 鎶婂紑闃�娑堟伅瀛樺叆娑堟伅涓績
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83OpenVo
+ */
+ private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83OpenVo dataCd83OpenVo){
+ if(clientVo != null && controller != null){
+ MsObj msObj = new MsObj() ;
+ msObj.put("name", "寮�闃�");
+ msObj.put("clientId", clientVo.getId());
+ msObj.put("clientName", clientVo.getName());
+ msObj.put("clientAddress", clientVo.getAddress());
+ msObj.put("icCardNo", dataCd83OpenVo.icCardNo);
+ msObj.put("rtuAddr", rtuAddr);
+ msObj.put("intakeId", controller.getIntakeId());
+ msObj.put("dt", dV1.dt);
+ MsCenterUnit.getInstance().pushMs(msObj);
+ }
+ }
+
+ /**
+ * 涓氬姟澶勭悊
+ * @param sv 鏈嶅姟
+ * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
+ * @param controller 鎺у埗鍣ㄥ璞�
+ * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+ * @param dV1 涓婃姤鏁版嵁
+ * @param dataCd83OpenVo 寮�闃�涓婃姤鏁版嵁瀵硅薄
+ */
+ private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83OpenVo dataCd83OpenVo) throws Exception {
+ RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ;
+ if(poLast == null){
+ //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁
+ //棣栧厛鐢熸垚寮�鍏抽榾鐨勬渶鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
+ poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV1, dataCd83OpenVo);
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83OpenVo, poLast);
+ sv.saveRmOpenCloseValveLast(poLast);
+ }else{
+ //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
+ 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 ;
+ }
+ }
+ 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, dataCd83OpenVo, true) ;
+ //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, 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, dataCd83OpenVo, true) ;
+ //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, 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, dataCd83OpenVo, false) ;
+ if(poHistory != null){
+ sv.updateRmOpenCloseValveHistory(poHistory);
+ }
+ }
+ }else{
+ //if(poLast.opType == null && po.clType == null)
+ //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊
+ this.updateOpenValve(clientVo, controller, poLast, null, dV1, dataCd83OpenVo, true) ;
+ //鐢熸垚骞朵繚瀛樻柊鐨勫紑闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV1, dataCd83OpenVo, poLast);
+ }
+
+ sv.updateRmOpenCloseValveLast(poLast);
+ }
+ }
+
+ /**
+ * 澶勭悊琛ユ姤锛屾殏鏃舵棤閫昏緫
+ */
+ private void dealSupplyReport(){
+ }
+
+ /**
+ * 淇濆瓨鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+ * @param sv
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83OpenVo
+ * @param poLast
+ * @throws Exception
+ */
+ private void newHistoryDataDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83OpenVo dataCd83OpenVo, RmOpenCloseValveLast poLast)throws Exception {
+ RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV1, dataCd83OpenVo) ;
+ sv.saveRmOpenCloseValveHistory(poHistory);
+ //鐢辨渶鏂版暟鎹寔鏈夊巻鍙叉暟鎹腑鐨勬渶鏂拌褰旾D锛屼互鏂逛究蹇�熸煡璇�
+ poLast.lastHistoryId = poHistory == null ? null: poHistory.id ;
+ }
+
+ /**
+ * 鐢熸垚鏂扮殑寮�闃�涓婃姤鏈�鏂版暟鎹褰�
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83OpenVo
+ * @return
+ * @throws Exception
+ */
+ private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, 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 ;
+ po.valueFrom(dV1, dataCd83OpenVo);
+ return po ;
+ }
+
+
+ /**
+ * 鐢熸垚鏂扮殑寮�闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83OpenVo
+ * @return
+ * @throws Exception
+ */
+ private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, 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 ;
+ po.valueFrom(dV1, dataCd83OpenVo);
+ return po ;
+ }
+
+
+ /**
+ * 鏇存柊鏁版嵁
+ * @param clientVo
+ * @param controller
+ * @param poLast
+ * @param poHistory
+ * @param dV1
+ * @param dataCd83OpenVo
+ * @param clearLastCloseValve
+ * @throws Exception
+ */
+ private void updateOpenValve(SeClient clientVo,
+ PrController controller,
+ RmOpenCloseValveLast poLast,
+ RmOpenCloseValveHistory poHistory,
+ DataV1 dV1,
+ 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, 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, dataCd83OpenVo, false);
+ }
+ }
+}
--
Gitblit v1.8.0