From 0cd096b972b9a0a4acef4ec70cfb7acfba6f1b24 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 9 Jan 2024 17:34:12 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-CMDB?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=88=86=E6=B4=BE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1065220494032896]后端-CMDB模型分派器 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1065220494032896 --- .../processtask/ProcessTaskException.java | 5 +++ .../core/ProcessStepHandlerBase.java | 3 +- .../core/IWorkerDispatcher.java | 12 +++--- .../core/WorkerDispatcherBase.java | 11 ++--- .../core/WorkerDispatcherFactory.java | 41 ++++++++++--------- .../core/IWorkerPolicyHandler.java | 10 ++--- 6 files changed, 46 insertions(+), 36 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/exception/processtask/ProcessTaskException.java b/src/main/java/neatlogic/framework/process/exception/processtask/ProcessTaskException.java index 356b1a35..969d7f7a 100644 --- a/src/main/java/neatlogic/framework/process/exception/processtask/ProcessTaskException.java +++ b/src/main/java/neatlogic/framework/process/exception/processtask/ProcessTaskException.java @@ -17,6 +17,7 @@ limitations under the License. package neatlogic.framework.process.exception.processtask; import neatlogic.framework.exception.core.ApiException; +import neatlogic.framework.util.$; public class ProcessTaskException extends ApiException { @@ -29,4 +30,8 @@ public class ProcessTaskException extends ApiException { public ProcessTaskException(String msg) { super(msg); } + + public ProcessTaskException(String key, Object... values) { + super($.t(key, values)); + } } diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java index f2facee8..631ba669 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java @@ -590,8 +590,9 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { return autoStart; } catch (Exception e) { logger.error(e.getMessage(), e); - throw new ProcessTaskException(e.getMessage()); + IProcessStepHandlerUtil.saveStepRemind(currentProcessTaskStepVo, currentProcessTaskStepVo.getId(), e.getMessage(), ProcessTaskStepRemindType.ERROR); } + return 0; } private void reapprovalRestoreBackup(ProcessTaskStepVo currentProcessTaskStepVo) { diff --git a/src/main/java/neatlogic/framework/process/workerdispatcher/core/IWorkerDispatcher.java b/src/main/java/neatlogic/framework/process/workerdispatcher/core/IWorkerDispatcher.java index 423ac176..b971706e 100755 --- a/src/main/java/neatlogic/framework/process/workerdispatcher/core/IWorkerDispatcher.java +++ b/src/main/java/neatlogic/framework/process/workerdispatcher/core/IWorkerDispatcher.java @@ -1,13 +1,13 @@ package neatlogic.framework.process.workerdispatcher.core; -import java.util.List; - -import org.springframework.util.ClassUtils; - import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; +import neatlogic.framework.process.exception.processtask.ProcessTaskException; +import org.springframework.util.ClassUtils; + +import java.util.List; public interface IWorkerDispatcher { @@ -46,7 +46,7 @@ public interface IWorkerDispatcher { * @param @return * @return String */ - public List getWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj); + public List getWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) throws ProcessTaskException; /** * @Author: diff --git a/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherBase.java b/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherBase.java index 15c1c5ce..20021c96 100755 --- a/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherBase.java +++ b/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherBase.java @@ -1,15 +1,16 @@ package neatlogic.framework.process.workerdispatcher.core; -import java.util.List; - import com.alibaba.fastjson.JSONObject; - import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; +import neatlogic.framework.process.exception.processtask.ProcessTaskException; + +import java.util.List; public abstract class WorkerDispatcherBase implements IWorkerDispatcher { - public final List getWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { + public final List getWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) throws ProcessTaskException { return myGetWorker(processTaskStepVo, configObj); } - protected abstract List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj); + protected abstract List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) throws ProcessTaskException; } diff --git a/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherFactory.java b/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherFactory.java index 037d4353..38219cd9 100644 --- a/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherFactory.java +++ b/src/main/java/neatlogic/framework/process/workerdispatcher/core/WorkerDispatcherFactory.java @@ -25,6 +25,7 @@ import neatlogic.framework.common.RootComponent; import neatlogic.framework.dto.module.ModuleVo; import neatlogic.framework.process.dto.WorkerDispatcherVo; import neatlogic.framework.process.exception.workcenter.HandlerDispatchComponentTypeNotFoundException; +import neatlogic.framework.util.$; import org.apache.commons.lang3.StringUtils; import java.util.*; @@ -33,7 +34,7 @@ import java.util.*; public class WorkerDispatcherFactory extends ModuleInitializedListenerBase { private static final Map componentMap = new HashMap(); - private static final List workerDispatcherList = new ArrayList<>(); + private static final Map className2ModuleIdMap = new HashMap<>(); public static IWorkerDispatcher getDispatcher(String name) { if (!componentMap.containsKey(name) || componentMap.get(name) == null) { @@ -46,9 +47,26 @@ public class WorkerDispatcherFactory extends ModuleInitializedListenerBase { TenantContext tenantContext = TenantContext.get(); List moduleList = tenantContext.getActiveModuleList(); List returnWorkerDispatcherList = new ArrayList<>(); - for (WorkerDispatcherVo workerDispatcherVo : workerDispatcherList) { + for (Map.Entry entry : componentMap.entrySet()) { + String moduleId = className2ModuleIdMap.get(entry.getKey()); for (ModuleVo moduleVo : moduleList) { - if (moduleVo.getId().equalsIgnoreCase(workerDispatcherVo.getModuleId())) { + if (moduleVo.getId().equalsIgnoreCase(moduleId)) { + IWorkerDispatcher component = entry.getValue(); + WorkerDispatcherVo workerDispatcherVo = new WorkerDispatcherVo(); + workerDispatcherVo.setHandler(component.getClassName()); + workerDispatcherVo.setName($.t(component.getName())); + workerDispatcherVo.setIsActive(1); + workerDispatcherVo.setHelp(component.getHelp()); + JSONArray configArray = component.getConfig(); + workerDispatcherVo.setConfig(configArray); + //判断是否有form组件,提高前端性能 + for(int i=0;i< configArray.size();i++){ + JSONObject config = configArray.getJSONObject(i); + if(Objects.equals(config.getString("type"),WorkerDispatcherForm.FORM_SELECT.getValue())){ + workerDispatcherVo.setIsHasForm(1); + } + } + workerDispatcherVo.setModuleId(moduleId); returnWorkerDispatcherList.add(workerDispatcherVo); break; } @@ -64,22 +82,7 @@ public class WorkerDispatcherFactory extends ModuleInitializedListenerBase { IWorkerDispatcher component = entry.getValue(); if (StringUtils.isNotBlank(component.getClassName())) { componentMap.put(component.getClassName(), component); - WorkerDispatcherVo workerDispatcherVo = new WorkerDispatcherVo(); - workerDispatcherVo.setHandler(component.getClassName()); - workerDispatcherVo.setName(component.getName()); - workerDispatcherVo.setIsActive(1); - workerDispatcherVo.setHelp(component.getHelp()); - JSONArray configArray = component.getConfig(); - workerDispatcherVo.setConfig(configArray); - //判断是否有form组件,提高前端性能 - for(int i=0;i< configArray.size();i++){ - JSONObject config = configArray.getJSONObject(i); - if(Objects.equals(config.getString("type"),WorkerDispatcherForm.FORM_SELECT.getValue())){ - workerDispatcherVo.setIsHasForm(1); - } - } - workerDispatcherVo.setModuleId(context.getId()); - workerDispatcherList.add(workerDispatcherVo); + className2ModuleIdMap.put(component.getClassName(), context.getId()); } } } diff --git a/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java b/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java index 6eff8645..07b37a8f 100644 --- a/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java @@ -1,12 +1,12 @@ package neatlogic.framework.process.workerpolicy.core; -import java.util.List; - -import org.springframework.transaction.annotation.Transactional; - import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerPolicyVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; +import neatlogic.framework.process.exception.processtask.ProcessTaskException; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; public interface IWorkerPolicyHandler { String getType(); @@ -30,5 +30,5 @@ public interface IWorkerPolicyHandler { * @Description: TODO */ @Transactional - List execute(ProcessTaskStepWorkerPolicyVo workerPolicyVo, ProcessTaskStepVo currentProcessTaskStepVo); + List execute(ProcessTaskStepWorkerPolicyVo workerPolicyVo, ProcessTaskStepVo currentProcessTaskStepVo) throws ProcessTaskException; } -- Gitee