diff --git a/src/main/java/neatlogic/framework/process/constvalue/ItsmTenantConfig.java b/src/main/java/neatlogic/framework/process/constvalue/ItsmTenantConfig.java index 8c47d1a27c1ad16e704e9f56ac3f42132be6272a..44373186c8a3863d7536292a0b2d1bbfa30ba244 100644 --- a/src/main/java/neatlogic/framework/process/constvalue/ItsmTenantConfig.java +++ b/src/main/java/neatlogic/framework/process/constvalue/ItsmTenantConfig.java @@ -29,6 +29,8 @@ public enum ItsmTenantConfig implements ITenantConfig { WORKCENTER_CUSTOM_LIMIT("workcenter.custom.limit", "5", "nfpc.itsmtenantconfig.workcentercustomlimit"), WORKCENTER_PROCESSTASK_NEWPAGE("workcenter.processtask.newpage", "0", "nfpc.itsmtenantconfig.workcenterprocesstasknewpage"), PROCESSTASK_TAB_LAYOUT("processtask.tab.layout", "{}", "nfpc.itsmtenantconfig.processtasktablayout"), + + PROCESSTASK_WORKERPOLICY_ISONLYONCEEXECUTE("processtask.workerpolicy.isonlyonceexecute", "0", "nfpc.itsmtenantconfig.processtaskworkerpolicyisonlyonceexecute"), ; String key; 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 f39364fdae62a32b9277d5386489f23a9437b09e..89bb51afef85675228696291884465f780bf89cb 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java @@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONPath; import neatlogic.framework.asynchronization.threadlocal.UserContext; import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.common.constvalue.systemuser.SystemUser; +import neatlogic.framework.config.ConfigManager; import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.dao.mapper.RoleMapper; import neatlogic.framework.dao.mapper.TeamMapper; @@ -529,7 +530,8 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { continue; } /* 如果workerList.size()>0,说明已经存在过处理人,分配策略设置只分配一次,则继续使用旧处理人,否则启用分派 **/ - if (Objects.equals(workerPolicyHandler.isOnlyOnceExecute(), 1) && CollectionUtils.isNotEmpty(workerSet)) { + int isOnlyOnceExecute = Integer.parseInt(ConfigManager.getConfig(ItsmTenantConfig.PROCESSTASK_WORKERPOLICY_ISONLYONCEEXECUTE)); + if (Objects.equals(isOnlyOnceExecute, 1) && CollectionUtils.isNotEmpty(workerSet)) { continue; } workerSet.clear(); 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 07b37a8f756ffe3cb77bd2d1e9adf64e9307f376..16768b5b0865b93940a30b3a9bc9a6138e0c4746 100644 --- a/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/framework/process/workerpolicy/core/IWorkerPolicyHandler.java @@ -18,6 +18,7 @@ public interface IWorkerPolicyHandler { * * @return */ + @Deprecated int isOnlyOnceExecute(); /**