From ea58523b67ad59002a1191c3c564258c5b81f6f2 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 06 五月 2025 17:35:16 +0800
Subject: [PATCH] Revert "1、实现万用token(0000-0000-1234-9876-5); 2、web端单独实现命令结果等待器,并修改相关部分; 3、web端实现透传命令; 4、修改一些不当注释; 5、优化一些代码。"

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java |  134 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java
new file mode 100644
index 0000000..1cf17b2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java
@@ -0,0 +1,134 @@
+package com.dy.rtuMw.server.rtuData;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.text.ParseException;
+
+/**
+ * 閮ㄥ垎瀹炵幇Task
+ */
+public abstract class TaskSurpport implements Task {
+
+	private static final Logger log = LogManager.getLogger(TaskSurpport.class.getName()) ;
+	
+	//褰撳墠鎵�澶勭悊鐨勪笂琛屾暟鎹墍灞濺TU鐨勫湴鍧�
+	//public String rtuAddr_inRootTk ;//鍙湪鏍箁oot浠诲姟瀵硅薄涓婁細浠樻鍊�
+	//鏈妭鐐归厤缃�
+	protected TaskConfig conf ;
+	//鏍逛换鍔�
+	protected TaskSurpport root ;
+	//鏈换鍔$殑瀛愪换鍔�
+	protected TaskSurpport[] subTasks ;
+	//鏈换鍔$殑澶勭悊缁撴灉
+	protected Object[] taskResult ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public abstract void execute(Object data) throws ParseException;
+	
+	/**
+	 * 浠诲姟閲囩敤瀵硅薄姹狅紝浠ヤ究閲嶇敤浠诲姟瀵硅薄锛�
+	 * 閲嶇敤鍓嶈杩涜瀵硅薄鍒濆鍖栵紝娓呴櫎涓婃鎵ц浠诲姟鏃堕仐鐣欑殑瀵硅薄灞炴�ф暟鎹�
+	 * 鍒濆鍖栨湰浠诲姟鍙婃墍鏈夊瓙浠诲姟
+	 */
+	@Override
+	public void cleanMeAndSubs() {
+		//rtuAddr_inRootTk = null ;
+		taskResult = null ;
+		if(this.subTasks != null && this.subTasks.length > 0){
+			for(int i = 0 ; i < this.subTasks.length; i++){
+				this.subTasks[i].cleanMeAndSubs() ;
+			}
+		}
+	}
+	
+	/**
+	 * 寰楀埌鏈换鍔¤妭鐐瑰鐞嗕骇鐢熺殑涓棿缁撴灉锛屼互渚涙湰鑺傜偣鎵�鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @return
+	 */
+	@Override
+	public Object[] getMyResults(){
+		return taskResult ;
+	}
+	
+	/**
+	 * 寰楀埌鎸囧畾浠诲姟鑺傜偣澶勭悊浜х敓鐨勪腑闂寸粨鏋滐紝浠ヤ緵鏈妭鐐规墍鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @param id 鎸囧畾浠诲姟ID
+	 * @return
+	 */
+	public Object[] getTaskResults(String id){
+		if(root != null){
+			return this.getTaskResults(root, id) ;
+		}
+		return null ;
+	}
+	private Object[] getTaskResults(TaskSurpport task, String id){ 
+		if(task != null && task.conf != null && task.conf.id != null && task.conf.id.equals(id)){
+			return task.getMyResults() ;
+		}else{
+			if(task.subTasks != null && task.subTasks.length > 0){
+				Object[] rs = null ;
+				for(int i = 0 ; i < task.subTasks.length; i++){
+					rs = getTaskResults(task.subTasks[i], id) ;
+					if(rs != null){
+						return rs ;
+					}
+				}
+			}
+		}
+		return null ;
+	}
+
+	/**
+	 * 杞笅绾т换鍔¤妭鐐瑰鐞嗭紝棣栧厛瑕佸疄浣撳寲鎵�鏈夊瓙鑺傜偣銆�
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void toNextTasks(Object data) {
+		try {
+			if(subTasks != null && subTasks.length > 0){
+				for(int i = 0 ; i < subTasks.length ; i++){
+					if(subTasks[i].conf.enable){
+						subTasks[i].execute(data) ;
+					}else{
+						//鏈妭鐐逛笉璧蜂綔鐢紝鐩存帴杩涘叆鏈妭鐨勫瓙鑺傜偣
+						subTasks[i].toNextTasks(data) ;
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.error("鍚戜笅绾т换鍔′紶閫掑伐浣滄椂鍑洪敊锛�" , e);
+		}finally{
+		}
+	}
+
+	/**
+	 * 杞笅绾ф煇涓换鍔¤妭鐐瑰鐞� 
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 * @param id 鎸囧畾浠诲姟ID
+	 */
+	public void toNextOneTask(Object data, String id){
+		try {
+			if(subTasks != null && subTasks.length > 0){
+				for(int i = 0 ; i < subTasks.length ; i++){
+					if(subTasks[i].conf.id.equals(id)){
+						if(subTasks[i].conf.enable){
+							subTasks[i].execute(data) ;
+						}else{
+							//鏈妭鐐逛笉璧蜂綔鐢紝鐩存帴杩涘叆鏈妭鐨勫瓙鑺傜偣
+							subTasks[i].toNextTasks(data) ;
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.error("鍚戞寚瀹氬瓙浠诲姟锛�" + id + "锛変紶閫掍换鍔℃椂鍑洪敊锛�" , e);
+		}finally{
+		}
+	}
+
+}

--
Gitblit v1.8.0