update 调整修改办理人接口

This commit is contained in:
gssong 2024-12-04 22:16:53 +08:00
parent 4ebf18a3a3
commit 97e9c2d7d1
2 changed files with 16 additions and 18 deletions

View File

@ -15,6 +15,7 @@ import org.dromara.warm.flow.core.listener.ListenerVariable;
import org.dromara.warm.flow.orm.entity.FlowTask;
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.service.IFlwInstanceService;
import org.dromara.workflow.service.IFlwTaskService;
import org.springframework.stereotype.Component;
import java.util.List;
@ -29,7 +30,7 @@ import java.util.List;
@RequiredArgsConstructor
public class WorkflowGlobalListener implements GlobalListener {
private final FlowTaskMapper flowTaskMapper;
private final IFlwTaskService iFlwTaskService;
private final IFlwInstanceService flwInstanceService;
@Override
@ -42,8 +43,7 @@ public class WorkflowGlobalListener implements GlobalListener {
publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId());
log.info("流程监听器流程状态:{}", flowParams.getFlowStatus());
}
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class)
.eq(FlowTask::getInstanceId, instance.getId()));
List<FlowTask> flowTasks = iFlwTaskService.selectByInstId(instance.getId());
if (CollUtil.isEmpty(flowTasks)) {
// 若流程已结束更新状态为已完成并发送完成事件
flwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus());

View File

@ -23,7 +23,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.entity.*;
import org.dromara.warm.flow.core.enums.CooperateType;
import org.dromara.warm.flow.core.enums.NodeType;
import org.dromara.warm.flow.core.enums.SkipType;
import org.dromara.warm.flow.core.enums.UserType;
@ -187,8 +186,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
//添加抄送人
setCopy(task, wfCopyList);
// 根据流程实例ID查询所有关联的任务
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class)
.eq(FlowTask::getInstanceId, instance.getId()));
List<FlowTask> flowTasks = selectByInstId(instance.getId());
List<User> userList = new ArrayList<>();
// 遍历任务列表处理每个任务的办理人
for (FlowTask flowTask : flowTasks) {
@ -568,18 +566,18 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
// 批量删除现有任务的办理人记录
if (CollUtil.isNotEmpty(flowTasks)) {
userService.deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId));
}
List<User> userList = flowTasks.stream()
.map(flowTask -> {
FlowUser flowUser = new FlowUser();
flowUser.setType(UserType.APPROVAL.getKey());
flowUser.setProcessedBy(userId);
flowUser.setAssociated(flowTask.getId());
return flowUser;
})
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(userList)) {
userService.saveBatch(userList);
List<User> userList = flowTasks.stream()
.map(flowTask -> {
FlowUser flowUser = new FlowUser();
flowUser.setType(UserType.APPROVAL.getKey());
flowUser.setProcessedBy(userId);
flowUser.setAssociated(flowTask.getId());
return flowUser;
})
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(userList)) {
userService.saveBatch(userList);
}
}
} catch (Exception e) {
log.error(e.getMessage(), e);