From b3b17b231e2f2840332ce6eb96f791865fdec6d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 16:38:16 +0800
Subject: [PATCH] 代码优化
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.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/FromRtuDataConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java
new file mode 100644
index 0000000..8be0c64
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java
@@ -0,0 +1,112 @@
+package com.dy.rtuMw.server.tasks;
+
+import com.dy.rtuMw.server.rtuData.RtuDataNode;
+import com.dy.rtuMw.server.rtuData.RtuDataCache;
+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 FromRtuDataConstantTask extends CoreTask {
+ private static final Logger log = LogManager.getLogger(FromRtuDataConstantTask.class.getName());
+
+ /**
+ * 鍦ㄥ崟绾跨▼鐜涓繍琛�
+ */
+ @Override
+ public Integer execute() {
+ try{
+ dealRtuUpData() ;
+ }catch(Exception e){
+ log.error(e);
+ }
+ return RtuDataCache.size()>0?0:1 ;
+ }
+ /**
+ * 澶勭悊涓婅鏁版嵁
+ */
+ public void dealRtuUpData() {
+ Node first = RtuDataCache.getFirstQueueNode() ;
+ if(first != null){
+ Node last = RtuDataCache.getLastQueueNode() ;
+ while (last != null){
+ last = this.doDealRtuUpData(first, last);
+ }
+ }
+ }
+
+ /**
+ * 澶勭悊缂撳瓨鐨勪笂琛屾暟鎹妭鐐�
+ * @param first 绗竴涓妭鐐�
+ * @param last 鏈�鍚庝竴涓妭鐐�
+ */
+ private Node doDealRtuUpData(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 dealRtuUpData_() {
+ Node first = RtuDataCache.getFirstQueueNode() ;
+ if(first != null){
+ Integer count = RtuDataCache.size() ;
+ Node last = RtuDataCache.getLastQueueNode() ;
+ this.doDealRtuUpData_(first, last);
+ return count ;
+ }
+ return null ;
+ }
+
+ /**
+ * 澶勭悊缂撳瓨鐨勪笂琛屾暟鎹妭鐐�
+ * @param first 绗竴涓妭鐐�
+ * @param last 鏈�鍚庝竴涓妭鐐�
+ */
+ private void doDealRtuUpData_(Node first, Node last){
+ if(last != null){
+ //鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+ Node pre = last.pre ;
+ dealNode(last) ;
+ if(first != last){
+ doDealRtuUpData(first, pre) ;
+ }else{
+ //鍋滄
+ }
+ }
+ }
+
+ /**
+ * 澶勭悊涓�涓妭鐐�
+ * @param node 鑺傜偣
+ */
+ private void dealNode(Node node){
+ if(node != null && node.obj != null){
+ RtuDataNode obj = (RtuDataNode)node.obj ;
+ obj.dealSelf() ;
+ RtuDataCache.removeNode(node);
+ }
+ }
+
+}
--
Gitblit v1.8.0