From 00d54db361d697cf8fdf2f15940f4650b21b3185 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 21 四月 2025 15:05:35 +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/forTcp/MidResultActionFromRtu.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
new file mode 100644
index 0000000..7de3eba
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -0,0 +1,73 @@
+package com.dy.rtuMw.server.forTcp;
+
+import com.dy.rtuMw.server.rtuData.RtuComResultCache;
+import com.dy.rtuMw.server.rtuData.RtuComResultNode;
+import com.dy.rtuMw.server.rtuData.RtuDataNode;
+import com.dy.rtuMw.server.rtuData.RtuDataCache;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import com.dy.common.mw.protocol.MidResult;
+import com.dy.common.mw.protocol.MidResultAction;
+import com.dy.common.mw.protocol.MidResultFromRtu;
+import com.dy.common.mw.protocol.MidResultToRtu;
+
+public class MidResultActionFromRtu implements MidResultAction {
+
+	private static Logger log = LogManager.getLogger(MidResultActionFromRtu.class) ;
+
+	@Override
+	public void doAction(MidResult result) {
+		if(result != null && result instanceof MidResultFromRtu){
+			//濡傛灉姝ゅ闇�瑕佹洿澶氱殑閫昏緫澶勭悊锛屽彲浠ョ敓鎴愪竴涓换鍔$被锛堝疄鐜癈oreTask锛夊璞¤繘琛屽鐞�
+			//褰撳墠锛屽鐞嗙洿鎺ヨ繘琛�
+			MidResultFromRtu resFromRtu = (MidResultFromRtu)result ;
+			if(!resFromRtu.reportOrResponse_trueOrFalse){
+				//鍛戒护搴旂瓟
+				//姝ゅ瀹炵幇锛屼笌浠ュ墠涓嶄竴鏍凤紝
+				//浠ュ墠瀹炵幇锛氬尮閰嶅懡浠ゆ槸浠庡悗鍚戝墠鍖归厤锛�
+				//褰撳墠瀹炵幇锛屽尮閰嶅懡浠ゆ槸浠庡墠鍚戝悗鍖归厤锛屽師鍥狅細涓句緥锛屽綋鎵归噺涓嬪彂琛ュ彫鍛戒护锛屽鏋滀粠鍚庡尮閰嶏紝鍒欏墠闈㈠懡浠や細涓嬪彂澶氭锛屽嵆涓�涓笂鎶ユ鏁版嵁浼氳ˉ鍙娆�
+				MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ;
+				if(resToRtu != null){
+					//鍖归厤鍒颁笅鍙戠殑鍛戒护
+					resFromRtu.matchedCommand(resToRtu.commandId, resToRtu.rtuResultSendWebUrl) ;
+					this.nextDealRtuData(false, resFromRtu);
+					this.nextDealRtuComResult(resFromRtu);
+				}else{
+					log.error("鍖归厤鍛戒护澶辫触锛屽姛鑳界爜鏄細" + ((MidResultFromRtu) result).upCode );
+					this.nextDealRtuData(false, resFromRtu);
+					//鏈尮閰嶅埌涓嬪彂鐨勫懡浠わ紝鍛戒护鍦ㄧ紦瀛樺洜瓒呮椂琚竻闄や簡
+					RtuStatusDealer.commandFail2Success(resFromRtu.rtuAddr) ;
+				}
+			}else{
+				//涓诲姩涓婃姤鏁版嵁
+				this.nextDealRtuData(true, resFromRtu);
+			}
+		}
+	}
+
+	/**
+	 * 杩涘叆澶氱嚎绋嬬幆澧冧腑杩愯
+	 * @param reportOrResponse_trueOrFalse
+	 * @param resFromRtu
+	 */
+	private void nextDealRtuData(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){
+		try{
+			RtuDataCache.cacheRtuUpData(reportOrResponse_trueOrFalse, new RtuDataNode(resFromRtu.data));
+		}catch(Exception e){
+			log.error(e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * 杩涘叆鍗曠嚎绋嬬幆澧冧腑杩愯
+	 * @param resFromRtu
+	 */
+	private void nextDealRtuComResult(MidResultFromRtu resFromRtu){
+		try{
+			RtuComResultCache.cacheRtuComResult(new RtuComResultNode(resFromRtu.data));
+		}catch(Exception e){
+			log.error(e.getMessage(), e);
+		}
+	}
+}

--
Gitblit v1.8.0