diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/MockTaskAssigneeSelector.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/MockTaskAssigneeSelector.java index f3e944085..3ea85c2bb 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/MockTaskAssigneeSelector.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/MockTaskAssigneeSelector.java @@ -21,16 +21,16 @@ import java.util.Objects; */ public class MockTaskAssigneeSelector implements BpmnTaskAssigneeSelector { private final Map> assigneeMap = new HashMap<>(); - private final String processInstanceId; + private final String category; private final Boolean global; - public MockTaskAssigneeSelector(Map map, Boolean global, String processInstanceId) { + public MockTaskAssigneeSelector(Map map, Boolean global, String category) { map.forEach((k, v) -> { List assigners = new ArrayList<>(); JSON.parseArray(v, String.class).forEach(i -> assigners.add(JSON.parseObject(i, BpmnTaskDelegateAssigner.class))); assigneeMap.put(k, assigners); }); - this.processInstanceId = processInstanceId; + this.category = category; this.global = global; } @@ -64,7 +64,7 @@ public class MockTaskAssigneeSelector implements BpmnTaskAssigneeSelector { private void firstParseNacos(UserTask userTask, DelegateExecution execution, List users) { if (global) { users.addAll(assigneeMap.getOrDefault(userTask.getId(), Collections.emptyList())); - } else if (Objects.equals(processInstanceId, execution.getProcessInstanceId())) { + } else if (Objects.equals(category, execution.getProcessDefinitionId().split(":")[0])) { users.addAll(assigneeMap.getOrDefault(userTask.getId(), Collections.emptyList())); } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java index 894f02e8a..eec8d7ce6 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java @@ -63,8 +63,8 @@ public class EngineExecutionStartListener implements ExecutionListener { private Boolean mock; @Value("${workflow.assignee.global:true}") private Boolean global; - @Value("${workflow.assignee.instanceId:''}") - private String processInstanceId; + @Value("${workflow.assignee.category:''}") + private String category; @Value("#{${workflow.assignee.map:{}}}") private Map assigneeMap; @@ -171,7 +171,7 @@ public class EngineExecutionStartListener implements ExecutionListener { // 如果开启了 mock 模式(workflow.mock=true), 则直接返回 mock 的审批人 if (mock) { - assigners.addAll(new MockTaskAssigneeSelector(assigneeMap, global, processInstanceId).select(userTask, execution)); + assigners.addAll(new MockTaskAssigneeSelector(assigneeMap, global, category).select(userTask, execution)); } else { selectors.forEach(select -> { if (select.support(type)) {