From fe13fd899c03199dd3ba5523d54f7fbd710fb295 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期六, 09 三月 2024 11:09:42 +0800 Subject: [PATCH] fix 修改无法终止流程bug,补充注释 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 968ca91..9b60f34 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -473,10 +473,8 @@ throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED); } HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery() - .processInstanceBusinessKey(task.getProcessInstanceId()).singleResult(); - if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.TERMINATION.getStatus().equals(historicProcessInstance.getBusinessStatus())) { - throw new ServiceException("璇ュ崟鎹凡缁堟锛�"); - } + .processInstanceId(task.getProcessInstanceId()).singleResult(); + BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus()); try { if (StringUtils.isBlank(terminationBo.getComment())) { terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "缁堟浜嗙敵璇�"); @@ -490,9 +488,9 @@ if (CollectionUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); } + runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus()); runtimeService.deleteProcessInstance(task.getProcessInstanceId(), StrUtil.EMPTY); } - runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey()); if (processHandler != null) { processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false); @@ -651,9 +649,7 @@ ExecutionChildByExecutionIdCmd childByExecutionIdCmd = new ExecutionChildByExecutionIdCmd(task.getExecutionId()); List<ExecutionEntity> executionEntities = managementService.executeCommand(childByExecutionIdCmd); //鏍¢獙鍗曟嵁 - if (BusinessStatusEnum.BACK.getStatus().equals(processInstance.getBusinessStatus())) { - throw new ServiceException("璇ュ崟鎹凡閫�鍥烇紒"); - } + BusinessStatusEnum.checkBackStatus(processInstance.getBusinessStatus()); //鍒ゆ柇鏄惁鏈夊涓换鍔� List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list(); //鐢宠浜鸿妭鐐� -- Gitblit v1.9.3