diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java index 3c843f5..8a10b35 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java @@ -105,7 +105,12 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if (Objects.isNull(task)) { return AjaxResult.error("任务不存在"); } - runtimeService.updateBusinessStatus(taskVo.getInstanceId(), FlowStatus.APPROVING.getValue()); + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); + String businessStatus = processInstance.getBusinessStatus(); +// 排除驳回状态 + if (ObjectUtil.notEqual(businessStatus,FlowStatus.REJECT.getValue() )) { + runtimeService.updateBusinessStatus(taskVo.getInstanceId(), FlowStatus.APPROVING.getValue()); + } if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); taskService.resolveTask(taskVo.getTaskId(), taskVo.getVars()); @@ -115,6 +120,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask taskService.setAssignee(taskVo.getTaskId(), userId.toString()); taskService.complete(taskVo.getTaskId(), taskVo.getVars()); } +// 兼容驳回状态,提交报错;The process instance id is mandatory, but '' has been provided. + if (ObjectUtil.equals(businessStatus,FlowStatus.REJECT.getValue() )) { + runtimeService.updateBusinessStatus(taskVo.getInstanceId(), FlowStatus.APPROVING.getValue()); + } return AjaxResult.success(); }