diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index c2a993ba3..5f27f6bea 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -477,9 +477,10 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { runtimeService.deleteMultiInstanceExecution(task.getExecutionId(), false); taskService.deleteTask(task.getId(), dto.getAdvice()); - if (Objects.nonNull(currentNumberOfInstances) && currentNumberOfInstances == 1) { + // FIXME 这个拒绝的功能太过于业务定制了, 根本无法使用用户节点配置的完成条件, 后续慢慢熟悉后调整 + // if (Objects.nonNull(currentNumberOfInstances) && currentNumberOfInstances == 1) { finishProcessInstance(dto, instance); - } + // } } else { finishProcessInstance(dto, instance); } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java index 4af33b6cd..e09f3bed7 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java @@ -179,27 +179,23 @@ public class RocketMqMessagePushEventListener implements BpmnMessagePushEventLis variables.put(VAR_PROCESS_END_TIME, sdf.format(processInstance.getEndTime())); } variables.put(VAR_PROCESS_RESULT, processInstance.getResult().getDesc()); - - if (!StringUtils.hasLength(event.getTaskId())) { - return variables; - } else { + if (StringUtils.hasLength(event.getTaskId())) { List tasks = historyService.createHistoricTaskInstanceQuery().taskId(event.getTaskId()).list(); - if (CollectionUtils.isEmpty(tasks)) { - return variables; + if (!CollectionUtils.isEmpty(tasks)) { + // 应该只有 1 个, 但是为了防止有多个, 这里只取第一个 + List assigners = + (List) originVariables.getOrDefault(INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + tasks.get(0).getTaskDefinitionKey(), Collections.emptyList()); + assigners.stream().filter(i -> Objects.equals(i.buildAssigneeId(), tasks.get(0).getAssignee())).findAny() + .ifPresent(i -> { + variables.put(VAR_TASK_USER_NAME, i.getAssignerName()); + }); + variables.put(VAR_ACTIVITY_ID, tasks.get(0).getTaskDefinitionKey()); + variables.put(VAR_ACTIVITY_NAME, tasks.get(0).getName()); + variables.put(VAR_TASK_START_TIME, sdf.format(tasks.get(0).getCreateTime())); + // 操作类型 同意、驳回、加签、评论、转交等, 暂时不实现, 这里设置有很多问题 + variables.put(VAR_OPERATOR_TYPE, ""); } - // 应该只有 1 个, 但是为了防止有多个, 这里只取第一个 - List assigners = - (List) originVariables.getOrDefault(INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + tasks.get(0).getTaskDefinitionKey(), Collections.emptyList()); - assigners.stream().filter(i -> Objects.equals(i.buildAssigneeId(), tasks.get(0).getAssignee())).findAny() - .ifPresent(i -> { - variables.put(VAR_TASK_USER_NAME, i.getAssignerName()); - }); - variables.put(VAR_ACTIVITY_ID, tasks.get(0).getTaskDefinitionKey()); - variables.put(VAR_ACTIVITY_NAME, tasks.get(0).getName()); - variables.put(VAR_TASK_START_TIME, sdf.format(tasks.get(0).getCreateTime())); - // 操作类型 同意、驳回、加签、评论、转交等, 暂时不实现, 这里设置有很多问题 - variables.put(VAR_OPERATOR_TYPE, ""); } categoryService.getById(Long.valueOf(processInstance.getCategory())).ifPresent(category -> {