update 优化任务办理
This commit is contained in:
parent
e8acfac091
commit
008e02a406
@ -138,6 +138,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
// 获取抄送人
|
// 获取抄送人
|
||||||
List<FlowCopyBo> flowCopyList = completeTaskBo.getFlowCopyList();
|
List<FlowCopyBo> flowCopyList = completeTaskBo.getFlowCopyList();
|
||||||
FlowTask flowTask = flowTaskMapper.selectById(taskId);
|
FlowTask flowTask = flowTaskMapper.selectById(taskId);
|
||||||
|
if (ObjectUtil.isNull(flowTask)) {
|
||||||
|
throw new ServiceException("流程任务不存在或任务已审批!");
|
||||||
|
}
|
||||||
Instance ins = insService.getById(flowTask.getInstanceId());
|
Instance ins = insService.getById(flowTask.getInstanceId());
|
||||||
// 获取流程定义信息
|
// 获取流程定义信息
|
||||||
Definition definition = defService.getById(flowTask.getDefinitionId());
|
Definition definition = defService.getById(flowTask.getDefinitionId());
|
||||||
@ -180,23 +183,30 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
this.setCopy(task, flowCopyList);
|
this.setCopy(task, flowCopyList);
|
||||||
// 根据流程实例ID查询所有关联的任务
|
// 根据流程实例ID查询所有关联的任务
|
||||||
List<FlowTask> flowTasks = this.selectByInstId(instance.getId());
|
List<FlowTask> flowTasks = this.selectByInstId(instance.getId());
|
||||||
|
if (CollUtil.isEmpty(flowTasks)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Long> taskIdList = StreamUtils.toList(flowTasks, FlowTask::getId);
|
||||||
|
// 获取与当前任务关联的用户列表
|
||||||
|
List<User> associatedUsers = WorkflowUtils.getFlowUserService().getByAssociateds(taskIdList);
|
||||||
|
if (CollUtil.isEmpty(associatedUsers)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
List<User> userList = new ArrayList<>();
|
List<User> userList = new ArrayList<>();
|
||||||
// 遍历任务列表,处理每个任务的办理人
|
// 遍历任务列表,处理每个任务的办理人
|
||||||
for (FlowTask flowTask : flowTasks) {
|
for (FlowTask flowTask : flowTasks) {
|
||||||
// 获取与当前任务关联的用户列表
|
List<User> users = StreamUtils.filter(associatedUsers, user -> Objects.equals(user.getAssociated(), flowTask.getId()));
|
||||||
List<User> associatedUsers = WorkflowUtils.getFlowUserService().getByAssociateds(Collections.singletonList(flowTask.getId()));
|
if (CollUtil.isNotEmpty(users)) {
|
||||||
if (CollUtil.isNotEmpty(associatedUsers)) {
|
userList.addAll(WorkflowUtils.buildUser(users, flowTask.getId()));
|
||||||
userList.addAll(WorkflowUtils.buildUser(associatedUsers, flowTask.getId()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 批量删除现有任务的办理人记录
|
// 批量删除现有任务的办理人记录
|
||||||
if (CollUtil.isNotEmpty(flowTasks)) {
|
WorkflowUtils.getFlowUserService().deleteByTaskIds(taskIdList);
|
||||||
WorkflowUtils.getFlowUserService().deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId));
|
|
||||||
}
|
|
||||||
// 确保要保存的 userList 不为空
|
// 确保要保存的 userList 不为空
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
if (CollUtil.isEmpty(userList)) {
|
||||||
WorkflowUtils.getFlowUserService().saveBatch(userList);
|
return;
|
||||||
}
|
}
|
||||||
|
WorkflowUtils.getFlowUserService().saveBatch(userList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user