fix: 存在子流程情况下的取消逻辑优化
This commit is contained in:
parent
e14716a307
commit
b471dc55c3
|
@ -18,7 +18,7 @@ public enum BpmReasonEnum {
|
||||||
REJECT_TASK("审批不通过任务,原因:{}"), // 场景:用户审批不通过任务。修改文案时,需要注意 isRejectReason 方法
|
REJECT_TASK("审批不通过任务,原因:{}"), // 场景:用户审批不通过任务。修改文案时,需要注意 isRejectReason 方法
|
||||||
CANCEL_PROCESS_INSTANCE_BY_START_USER("用户主动取消流程,原因:{}"), // 场景:用户主动取消流程
|
CANCEL_PROCESS_INSTANCE_BY_START_USER("用户主动取消流程,原因:{}"), // 场景:用户主动取消流程
|
||||||
CANCEL_PROCESS_INSTANCE_BY_ADMIN("管理员【{}】取消流程,原因:{}"), // 场景:管理员取消流程
|
CANCEL_PROCESS_INSTANCE_BY_ADMIN("管理员【{}】取消流程,原因:{}"), // 场景:管理员取消流程
|
||||||
CANCEL_CHILD_PROCESS_INSTANCE_BY_MAIN_PROCESS("子流程自动取消,原因:子流程已取消"),
|
CANCEL_CHILD_PROCESS_INSTANCE_BY_MAIN_PROCESS("子流程自动取消,原因:主流程已取消"),
|
||||||
|
|
||||||
// ========== 流程任务的独有原因 ==========
|
// ========== 流程任务的独有原因 ==========
|
||||||
|
|
||||||
|
|
|
@ -853,10 +853,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
BpmProcessInstanceStatusEnum.CANCEL.getStatus());
|
BpmProcessInstanceStatusEnum.CANCEL.getStatus());
|
||||||
runtimeService.setVariable(id, BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_REASON, reason);
|
runtimeService.setVariable(id, BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_REASON, reason);
|
||||||
|
|
||||||
// 2. 结束流程
|
// 2. 取消所有子流程
|
||||||
taskService.moveTaskToEnd(id, reason);
|
|
||||||
|
|
||||||
// 3. 取消所有子流程
|
|
||||||
List<ProcessInstance> subProcessInstances = runtimeService.createProcessInstanceQuery()
|
List<ProcessInstance> subProcessInstances = runtimeService.createProcessInstanceQuery()
|
||||||
.superProcessInstanceId(id)
|
.superProcessInstanceId(id)
|
||||||
.list();
|
.list();
|
||||||
|
@ -864,6 +861,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
updateProcessInstanceCancel(processInstance.getProcessInstanceId(),
|
updateProcessInstanceCancel(processInstance.getProcessInstanceId(),
|
||||||
BpmReasonEnum.CANCEL_CHILD_PROCESS_INSTANCE_BY_MAIN_PROCESS.getReason());
|
BpmReasonEnum.CANCEL_CHILD_PROCESS_INSTANCE_BY_MAIN_PROCESS.getReason());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 3. 结束流程
|
||||||
|
taskService.moveTaskToEnd(id, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue