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