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/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