From 633ad65f64202ac3e57a90465070afc2848d87c2 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 8 Jan 2024 20:08:49 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=BB=91=E7=99=BD=E5=90=8D=E5=8D=95=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/core/common/code/BpmnTaskRespCode.java | 4 +++- .../core/engine/cmd/CustomCreateDummyTaskCmd.java | 13 +++++++++++++ .../service/impl/CategoryConfigServiceImpl.java | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/BpmnTaskRespCode.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/BpmnTaskRespCode.java index 5a46f1e01..c6b6cffab 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/BpmnTaskRespCode.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/BpmnTaskRespCode.java @@ -24,7 +24,9 @@ public enum BpmnTaskRespCode implements IModuleRespCode { ACTIVITY_CANT_SET_ASSIGNEE("009", "当前节点状态不允许设置审批人"), CANT_CREATE_SUB_TASK("010", "父任务不存在, 不允许创建子任务"), DUMMY_TASK_NOT_EXISTS("011", "机器人节点不存在, 实例 ID: 【{}】, 任务 ID: 【{}】"), - DUMMY_TASK_CREATED_NOT_SUPPORT("012", "当前审批已结束, 不支撑创建机器人节点, 实例 ID: 【{}】"), + DUMMY_TASK_CREATED_NOT_SUPPORT("012", "当前审批已结束, 不支持创建机器人节点, 实例 ID: 【{}】"), + DUMMY_TASK_CANT_CREATED("013", "不允许创建新的机器人节点, 实例 ID: 【{}】"), + DUMMY_TASK_CANT_REPEAT_CREATE("014", "已存在运行中的机器人节点, 不允许重复创建!"), ; private String code; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCreateDummyTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCreateDummyTaskCmd.java index 73dac0582..fb6388cc4 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCreateDummyTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCreateDummyTaskCmd.java @@ -25,9 +25,12 @@ import java.util.List; import java.util.Objects; import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC; +import static cn.axzo.workflow.common.constant.BpmnConstants.DUMMY_ASSIGNEE_ID; import static cn.axzo.workflow.common.constant.BpmnConstants.DUMMY_ID; import static cn.axzo.workflow.common.constant.BpmnConstants.HIDDEN_ASSIGNEE_ID; import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_ASSIGNEE_SKIP_FLAT; +import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.DUMMY_TASK_CANT_CREATED; +import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.DUMMY_TASK_CANT_REPEAT_CREATE; import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.DUMMY_TASK_CREATED_NOT_SUPPORT; import static org.flowable.task.api.Task.DEFAULT_PRIORITY; @@ -72,7 +75,17 @@ public class CustomCreateDummyTaskCmd implements Command, Serializable { BpmnProcessInstanceResultEnum.PROCESSING.getStatus())) { throw new WorkflowEngineException(DUMMY_TASK_CREATED_NOT_SUPPORT, processInstanceId); } + TaskService taskService = processEngineConfiguration.getTaskService(); + List activeTaskList = taskService.createTaskQuery().processInstanceId(processInstanceId).active().list(); + + activeTaskList.stream().filter(task -> Objects.equals(task.getAssignee(), DUMMY_ASSIGNEE_ID)).findAny().ifPresent(task -> { + throw new WorkflowEngineException(DUMMY_TASK_CANT_CREATED, processInstanceId); + }); + activeTaskList.stream().filter(task -> Objects.equals(task.getTaskDefinitionKey(), DUMMY_ID)).findAny().ifPresent(task -> { + throw new WorkflowEngineException(DUMMY_TASK_CANT_REPEAT_CREATE); + }); + IdGenerator idGenerator = processEngineConfiguration.getIdGenerator(); TaskEntity task = (TaskEntity) taskService.newTask(idGenerator.getNextId()); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/CategoryConfigServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/CategoryConfigServiceImpl.java index 42146cff4..efba7c12b 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/CategoryConfigServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/CategoryConfigServiceImpl.java @@ -61,7 +61,8 @@ public class CategoryConfigServiceImpl extends ServiceImpl page = dictConfMapper.selectPage(new Page<>(dto.getPageNo(), dto.getPageSize()), queryWrapper);