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/tasks/FromRtuComResultConstantTask.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
new file mode 100644
index 0000000..c88ca9e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
@@ -0,0 +1,112 @@
+package com.dy.rtuMw.server.tasks;
+
+import com.dy.rtuMw.server.rtuData.RtuComResultNode;
+import com.dy.rtuMw.server.rtuData.RtuComResultCache;
+import com.dy.common.mw.core.CoreTask;
+import com.dy.common.queue.Node;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * 瀵筊TU涓婅鏁版嵁杩涜涓氬姟澶勭悊
+ */
+public class FromRtuComResultConstantTask extends CoreTask {
+ private static final Logger log = LogManager.getLogger(FromRtuComResultConstantTask.class.getName());
+
+ /**
+ * 鍦ㄥ崟绾跨▼鐜涓繍琛�
+ */
+ @Override
+ public Integer execute() {
+ try{
+ dealRtuComResult() ;
+ }catch(Exception e){
+ log.error(e);
+ }
+ return RtuComResultCache.size()>0?0:1 ;
+ }
+ /**
+ * 澶勭悊涓婅鍛戒护缁撴灉
+ */
+ public void dealRtuComResult() {
+ Node first = RtuComResultCache.getFirstQueueNode() ;
+ if(first != null){
+ Node last = RtuComResultCache.getLastQueueNode() ;
+ while (last != null){
+ last = this.doDealRtuComResult(first, last);
+ }
+ }
+ }
+
+ /**
+ * 澶勭悊缂撳瓨鐨勪笂琛屾暟鎹妭鐐�
+ * @param first 绗竴涓妭鐐�
+ * @param last 鏈�鍚庝竴涓妭鐐�
+ */
+ private Node doDealRtuComResult(Node first, Node last){
+ if(last != null){
+ //鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+ Node pre = last.pre ;
+ dealNode(last) ;
+ if(first != last){
+ return pre ;
+ }else{
+ //鍋滄
+ return null ;
+ }
+ }else{
+ return null ;
+ }
+ }
+
+
+ ////////////////////////////////////////////////
+ //
+ //浠ヤ笅瀹炵幇锛岄噰鐢ㄤ簡閫掑綊璋冪敤锛屽綋闃熷垪缂撳瓨缁撶偣寰堝鏃讹紝浼氫骇鐢熸爤婧㈠嚭寮傚父
+ //
+ ////////////////////////////////////////////////
+// /**
+// * 澶勭悊涓婅鏁版嵁
+// */
+// public Integer dealRtuComResult_() {
+// Node first = RtuComResultCache.getFirstQueueNode() ;
+// if(first != null){
+// Integer count = RtuComResultCache.size() ;
+// Node last = RtuComResultCache.getLastQueueNode() ;
+// this.doDealRtuComResult_(first, last);
+// return count ;
+// }
+// return null ;
+// }
+//
+// /**
+// * 澶勭悊缂撳瓨鐨勪笂琛屾暟鎹妭鐐�
+// * @param first 绗竴涓妭鐐�
+// * @param last 鏈�鍚庝竴涓妭鐐�
+// */
+// private void doDealRtuComResult_(Node first, Node last){
+// if(last != null){
+// //鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+// Node pre = last.pre ;
+// dealNode(last) ;
+// if(first != last){
+// doDealRtuComResult_(first, pre) ;
+// }else{
+// //鍋滄
+// }
+// }
+// }
+//
+ /**
+ * 澶勭悊涓�涓妭鐐�
+ * @param node 鑺傜偣
+ */
+ private void dealNode(Node node){
+ if(node != null && node.obj != null){
+ RtuComResultNode obj = (RtuComResultNode)node.obj ;
+ obj.dealSelf() ;
+ RtuComResultCache.removeNode(node);
+ }
+ }
+
+}
--
Gitblit v1.8.0