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 356b1a35d855acb8194ad17c8ace9dcd9c9b0065..969d7f7a33a7e951c26eb0f6c2162c6092783816 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 f2facee8c719191f20136e545664caf2efc2e15f..631ba66987cb5ceebab96be6f657c56135fa733f 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 423ac1762361757f623eb5814699bbe57b088c6f..b971706e423d169166bbe5de228bc53d99e3f323 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 15c1c5ce140d3c80b061b5baa127c0a3675679da..20021c96de9f71d71ba63fe0004d9d74432df8c1 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 037d4353b25b9d61004f85dfd1f1589466107f18..38219cd94738055e0c03a3205c93e327d29f7021 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 6eff8645624b52dc1beddc72b12e820873ad453b..07b37a8f756ffe3cb77bd2d1e9adf64e9307f376 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; }