From 2daa780ed9c74cb689f7c1e6a13f8aadebd57208 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 15 五月 2025 16:59:09 +0800
Subject: [PATCH] 表阀一体协议,修改域名及端口解析,适应空值情况。
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java | 306 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 257 insertions(+), 49 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
index 86b5fe4..4934903 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
@@ -3,9 +3,13 @@
import com.dy.common.mw.protocol.Data;
import com.dy.common.mw.protocol.p206V202404.DataV202404;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+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;
@@ -17,6 +21,9 @@
* @LastEditTime 2024-06-20 13:48
* @Description
*/
+/**
+ * 澶勭悊鎺у埗鍣ㄥ叧闃�涓婃姤
+ */
public class TkDealCloseValveReportV202404 extends TaskSurpport {
private static final Logger log = LogManager.getLogger(TkDealCloseValveReportV202404.class.getName());
@@ -25,7 +32,6 @@
/**
* 鎵ц鑺傜偣浠诲姟锛氬叧闃�涓婃姤
- *
* @param data 闇�瑕佸鐞嗙殑鏁版嵁
*/
@Override
@@ -33,72 +39,274 @@
Data d = (Data) data;
DataV202404 dV202404 = (DataV202404) d.getSubData();
Object cdObj = dV202404.subData;
- if (cdObj != null) {
+ if (cdObj != null && cdObj instanceof DataCd85Vo) {
try {
Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId);
DbSv sv = (DbSv) objs[0];
PrController controller = (PrController) objs[1];
- if (cdObj instanceof DataCd85Vo) {
- DataCd85Vo cdData = (DataCd85Vo) (cdObj);
- this.doDeal(sv, controller, d.getRtuAddr(), dV202404, (DataCd85Vo)cdObj);
- }
+ SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
+ this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV202404, (DataCd85Vo)cdObj) ;
+ this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV202404, (DataCd85Vo)cdObj);
} catch (Exception e) {
log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�鎶ユ暟鎹椂鍙戠敓寮傚父", e);
}
}
}
- /**
- * 澶勭悊鍏抽榾鎶ユ暟鎹�
- * @param sv 鏈嶅姟
- * @param controller 鎺у埗鍣ㄥ璞�
- * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
- * @param dataV202404 鍗忚鏁版嵁
- * @param cdData 鍔熻兘鏁版嵁
- */
- private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData) throws Exception {
- this.saveOrUpdateLast(sv, controller, rtuAddr, dataV202404, cdData);
- this.saveHistory(sv, controller, rtuAddr, dataV202404, cdData);
- }
/**
- * 淇濆瓨鎴栨洿鏂版帶鍒跺櫒鍏抽榾鎶ユ渶鏂版暟鎹�
- * @param sv 鏈嶅姟bean
- * @param controller 鎺у埗鍣ㄥ璞�
- * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
- * @param dataV202404 鍗忚鏁版嵁
- * @param cdData 鍔熻兘鏁版嵁
+ * 鎶婂紑闃�娑堟伅瀛樺叆娑堟伅涓績
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV202404
+ * @param dataCd85Vo
*/
- private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
- RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(controller.getIntakeId());
- if(po == null){
- po = new RmOpenCloseValveLast();
- po.controllerId = controller==null?null:controller.getId();
- po.intakeId = controller==null?null:controller.getIntakeId();
- po.rtuAddr = rtuAddr;
- po.valueFrom85(dataV202404, cdData);
- sv.saveRmOpenCloseValveLast(po);
- }else{
- po.controllerId = controller==null?null:controller.getId();
- po.intakeId = controller==null?null:controller.getIntakeId();
- po.valueFrom85(dataV202404, cdData);
- sv.updateRmOpenCloseValveLast(po);
+ private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV202404 dV202404, DataCd85Vo dataCd85Vo){
+ 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", dataCd85Vo.icCardNo);
+ msObj.put("rtuAddr", rtuAddr);
+ msObj.put("intakeId", controller.getIntakeId());
+ msObj.put("dt", dV202404.dt);
+ MsCenterUnit.getInstance().pushMs(msObj);
}
}
/**
- * 淇濆瓨鎺у埗鍣ㄥ叧闃�鎶ュ巻鍙叉暟鎹�
- * @param sv 鏈嶅姟bean
+ * 淇濆瓨鏁版嵁
+ * @param sv 鏈嶅姟
+ * @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
* @param controller 鎺у埗鍣ㄥ璞�
* @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
- * @param dataV202404 鍗忚鏁版嵁
- * @param cdData 鍔熻兘鏁版嵁
+ * @param dV202404 涓婃姤鏁版嵁
+ * @param dataCd85Vo 鍏抽榾涓婃姤鏁版嵁瀵硅薄
*/
- private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception {
- RmOpenCloseValveHistory po = new RmOpenCloseValveHistory();
- po.controllerId = controller==null?null:controller.getId();
- po.intakeId = controller==null?null:controller.getIntakeId();
- po.rtuAddr = rtuAddr;
- po.valueFrom85(dataV202404, cdData);
- sv.saveRmOpenCloseValveHistory(po); ;
+ private void doDeal(DbSv sv, SeClient clientVo, PrController controller, String rtuAddr, DataV202404 dV202404, DataCd85Vo dataCd85Vo) throws Exception {
+ RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ;
+ if(poLast == null){
+ //鏁版嵁搴撲腑涓嶅瓨鍦ㄨ鎺у埗鍣ㄧ殑寮�鍏抽榾鏁版嵁
+ //棣栧厛鐢熸垚鏈�鏂版暟鎹強鍘嗗彶鏁版嵁锛屽苟鍏堜繚瀛�
+ poLast = this.newRmOpenCloseValveLast(clientVo, controller, rtuAddr, dV202404, dataCd85Vo);
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ //淇濆瓨鏈�鏂版暟鎹�
+ sv.saveRmOpenCloseValveLast(poLast);
+ }else{
+ //鏁版嵁搴撲腑瀛樺湪璇ユ帶鍒跺櫒鐨勫紑鍏抽榾鏁版嵁
+ if(poLast.clOrderNo != null && poLast.clIcCardAddr != null && poLast.clIcCardNo != null){
+ if(poLast.clOrderNo.equals(dataCd85Vo.orderNo)
+ && poLast.clIcCardAddr.equals(dataCd85Vo.icCardAddr)
+ && poLast.clIcCardNo.equals(dataCd85Vo.icCardNo)){
+ //閲嶅涓婃姤锛屽師鍥犳槸涓嬭鏁版嵁澶勭悊鎱簡锛屽氨閲嶅涓婃姤浜�
+ return ;
+ }
+ }
+ if(poLast.clType == null){
+ //鍘熻褰曚笉瀛樺湪鍏抽榾鏁版嵁锛屾墍浠ュ綋鍓嶅叧闃�涓婃姤鏄柊鐨勪竴娆″叧闃�
+ if(poLast.opType == null || poLast.openDt == null){
+ //鍘熻褰曚腑涓嶅瓨鍦ㄥ紑闃�鏁版嵁(鍗冲紑闃�涓庡叧闃�鏁版嵁閮芥病鏈夛紝杩欑鎯呭喌涓�鑸笉瀛樺湪)锛屾病鍔炴硶杩涜鍖归厤
+ //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ }else{
+ //鍘熻褰曚腑瀛樺湪寮�闃�鏁版嵁锛岃繘琛屽巻鍙叉暟鎹尮閰�
+ RmOpenCloseValveHistory poHistory = null ;
+ if(poLast.lastHistoryId != null){
+ poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId) ;
+ if(poHistory != null){
+ if(poHistory.opOrderNo != null){
+ if(poHistory.opOrderNo.equals(dataCd85Vo.orderNo)){
+ //鍖归厤鎴愬姛
+ //褰撳墠鍏抽榾鏄師璁板綍涓紑闃�鐨勫搴斿叧闃�
+ this.updateCloseValve(clientVo, controller, rtuAddr, poLast, poHistory, dV202404, dataCd85Vo, false) ;
+ sv.updateRmOpenCloseValveHistory(poHistory);
+ }else{
+ //鍖归厤澶辫触
+ //褰撳墠鍏抽榾涓嶆槸鍘熻褰曚腑寮�闃�鐨勫搴斿叧闃�锛岃鏄庢槸鏂扮殑涓�娆″叧闃�鎶ワ紝鑰屼笖瀵瑰簲鍏抽榾鎶ョ殑涓婁竴娆″紑闃�鎶ユ湭鏀跺埌
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, true);
+ }
+ }else{
+ //杩欑鎯呭喌涓嶅瓨鍦紝璁や负鍖归厤澶辫触
+ //褰撳墠鍏抽榾涓嶆槸鍘熻褰曚腑寮�闃�鐨勫搴斿叧闃�锛岀敓鎴愬苟淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, true);
+ }
+ }else{
+ //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, true);
+ }
+ }else{
+ //娌℃湁鍘嗗彶鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛岃涓哄尮閰嶅け璐ワ紝鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, true);
+ }
+ }
+ }else if(poLast.opType != null){
+ //鍘熻褰曞瓨鍦ㄥ叧闃�鏁版嵁锛屼篃瀛樺湪寮�闃�鏁版嵁锛岄鍏堣繘琛屽姣�
+ if(poLast.clOrderNo != null && poLast.clOrderNo.equals(dataCd85Vo.orderNo)){
+ //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+ }else {
+ //鏄柊鐨勪笂鎶ュ叧闃�鏁版嵁
+ //杩涜鍘嗗彶鏁版嵁鍖归厤
+ RmOpenCloseValveHistory poHistory = null ;
+ if(poLast.lastHistoryId != null) {
+ poHistory = sv.getRmOpenCloseValveHistory(poLast.lastHistoryId);
+ if (poHistory != null) {
+ if(poHistory.clOrderNo.equals(dataCd85Vo.orderNo)){
+ //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+ }else{
+ if(poLast.closeDt != null && poLast.closeDt.equals(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){
+ //閲嶅涓婃姤浜嗭紝涓嶈繘琛屽鐞�
+ }else if(poLast.closeDt != null && poLast.closeDt.after(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd85Vo.endDt))){
+ //琛ユ姤鐨勮涔呬箣鍓嶇殑鏁版嵁(瀵逛簬after:绛変簬鎴栨櫄浜庨兘杩斿洖true)
+ this.dealSupplyReport() ;
+ }else {
+ //涓婁釜寮�闃�鎶ユ湭涓婃姤
+ this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ;
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ }
+ }
+ }else{
+ //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+ this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ;
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ }
+ }else{
+ //杩欑鎯呭喌涓嶅瓨鍦紝浣嗕负瀹夊叏涔熻繘琛屽鐞嗭紝涔熻涓轰笂涓叧闃�鎶ユ湭涓婃姤
+ this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ;
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ }
+ }
+ }else{
+ //if(po.opType == null)
+ //鍘熻褰曚笉瀛樺湪寮�闃�鏁版嵁涔熶笉瀛樺湪鍏抽榾鏁版嵁锛岃繖绉嶆儏鍐典笉瀛樺湪锛屼絾涓哄畨鍏ㄤ篃杩涜澶勭悊锛屼篃璁や负涓婁釜鍏抽榾鎶ユ湭涓婃姤
+ this.updateCloseValve(clientVo, controller, rtuAddr, poLast, null, dV202404, dataCd85Vo, true) ;
+ //鐢熸垚骞朵繚瀛樻柊鐨勫叧闃�涓婃姤鍘嗗彶鏁版嵁璁板綍锛屾病鏈夊搴旂殑寮�鍙戞暟鎹�
+ this.newHistoryDataDeal(sv, clientVo, controller, rtuAddr, dV202404, dataCd85Vo, poLast, null);
+ }
+
+ sv.updateRmOpenCloseValveLast(poLast);
+ }
+ }
+
+ /**
+ * 澶勭悊琛ユ姤锛屾殏鏃舵棤閫昏緫
+ */
+ private void dealSupplyReport(){
+ }
+
+ /**
+ * 淇濆瓨鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍锛屽苟鎶奍D璧嬪�肩粰鏈�鏂拌褰曠殑 lastHistoryId
+ * @param sv
+ * @param controller
+ * @param rtuAddr
+ * @param dV202404
+ * @param dataCd85Vo
+ * @param poLast
+ * @param clearLastOpenValue
+ * @throws Exception
+ */
+ private void newHistoryDataDeal(DbSv sv,
+ SeClient clientVo,
+ PrController controller,
+ String rtuAddr,
+ DataV202404 dV202404,
+ DataCd85Vo dataCd85Vo,
+ RmOpenCloseValveLast poLast,
+ Boolean clearLastOpenValue)throws Exception {
+ RmOpenCloseValveHistory poHistory = this.newRmOpenCloseValveHistory(clientVo, controller, rtuAddr, dV202404, dataCd85Vo) ;
+ 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 dV202404
+ * @param dataCd85Vo
+ * @return
+ * @throws Exception
+ */
+ private RmOpenCloseValveLast newRmOpenCloseValveLast(SeClient clientVo,
+ PrController controller,
+ String rtuAddr,
+ DataV202404 dV202404,
+ DataCd85Vo dataCd85Vo)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.valueFrom85(dV202404, dataCd85Vo);
+ return po ;
+ }
+
+
+ /**
+ * 鐢熸垚鏂扮殑鍏抽榾涓婃姤鍘嗗彶鏁版嵁璁板綍
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV202404
+ * @param dataCd85Vo
+ * @return
+ * @throws Exception
+ */
+ private RmOpenCloseValveHistory newRmOpenCloseValveHistory(SeClient clientVo,
+ PrController controller,
+ String rtuAddr,
+ DataV202404 dV202404,
+ DataCd85Vo dataCd85Vo)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.valueFrom85(dV202404, dataCd85Vo);
+ return po ;
+ }
+
+
+ /**
+ * 鏇存柊鏁版嵁
+ * @param clientVo
+ * @param controller
+ * @param poLast
+ * @param poHistory
+ * @param dV202404
+ * @param dataCd85Vo
+ * @param clearLastOpenValue
+ * @throws Exception
+ */
+ private void updateCloseValve(SeClient clientVo,
+ PrController controller,
+ String rtuAddr,
+ RmOpenCloseValveLast poLast,
+ RmOpenCloseValveHistory poHistory,
+ DataV202404 dV202404,
+ DataCd85Vo dataCd85Vo,
+ 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.rtuAddr = rtuAddr;
+ poLast.updateFrom(dV202404, dataCd85Vo, 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.rtuAddr = rtuAddr;
+ poHistory.updateFrom(dV202404, dataCd85Vo, false);
+ }
}
}
--
Gitblit v1.8.0