update(bpm): 发起流程实例时不再校验发起人自选审批人
parent
c2de5d9c8c
commit
1a01b0eec1
|
@ -28,7 +28,6 @@ import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmReasonEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmReasonEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
|
||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateInvoker;
|
import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateInvoker;
|
||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.strategy.dept.BpmTaskCandidateStartUserSelectStrategy;
|
|
||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
|
import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
|
||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnVariableConstants;
|
import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnVariableConstants;
|
||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.event.BpmProcessInstanceEventPublisher;
|
import cn.iocoder.yudao.module.bpm.framework.flowable.core.event.BpmProcessInstanceEventPublisher;
|
||||||
|
@ -642,8 +641,6 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
if (!processDefinitionService.canUserStartProcessDefinition(processDefinitionInfo, userId)) {
|
if (!processDefinitionService.canUserStartProcessDefinition(processDefinitionInfo, userId)) {
|
||||||
throw exception(PROCESS_INSTANCE_START_USER_CAN_START);
|
throw exception(PROCESS_INSTANCE_START_USER_CAN_START);
|
||||||
}
|
}
|
||||||
// 1.3 校验发起人自选审批人
|
|
||||||
validateStartUserSelectAssignees(definition, startUserSelectAssignees);
|
|
||||||
|
|
||||||
// 2. 创建流程实例
|
// 2. 创建流程实例
|
||||||
if (variables == null) {
|
if (variables == null) {
|
||||||
|
@ -688,29 +685,6 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||||
return instance.getId();
|
return instance.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateStartUserSelectAssignees(ProcessDefinition definition,
|
|
||||||
Map<String, List<Long>> startUserSelectAssignees) {
|
|
||||||
// 1. 获得发起人自选审批人的 UserTask/ServiceTask 列表
|
|
||||||
BpmnModel bpmnModel = processDefinitionService.getProcessDefinitionBpmnModel(definition.getId());
|
|
||||||
List<Task> tasks = BpmTaskCandidateStartUserSelectStrategy.getStartUserSelectTaskList(bpmnModel);
|
|
||||||
if (CollUtil.isEmpty(tasks)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 校验发起人自选审批人的审批人和抄送人是否都配置了
|
|
||||||
tasks.forEach(task -> {
|
|
||||||
List<Long> assignees = startUserSelectAssignees != null ? startUserSelectAssignees.get(task.getId()) : null;
|
|
||||||
if (CollUtil.isEmpty(assignees)) {
|
|
||||||
throw exception(PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_CONFIG, task.getName());
|
|
||||||
}
|
|
||||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(assignees);
|
|
||||||
assignees.forEach(assignee -> {
|
|
||||||
if (userMap.get(assignee) == null) {
|
|
||||||
throw exception(PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_EXISTS, task.getName(), assignee);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancelProcessInstanceByStartUser(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) {
|
public void cancelProcessInstanceByStartUser(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) {
|
||||||
|
|
Loading…
Reference in New Issue