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.entity.FlowTask;
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.service.IFlwInstanceService; import org.dromara.workflow.service.IFlwInstanceService;
import org.dromara.workflow.service.IFlwTaskService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@ -29,7 +30,7 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class WorkflowGlobalListener implements GlobalListener { public class WorkflowGlobalListener implements GlobalListener {
private final FlowTaskMapper flowTaskMapper; private final IFlwTaskService iFlwTaskService;
private final IFlwInstanceService flwInstanceService; private final IFlwInstanceService flwInstanceService;
@Override @Override
@ -42,8 +43,7 @@ public class WorkflowGlobalListener implements GlobalListener {
publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId()); publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId());
log.info("流程监听器流程状态:{}", flowParams.getFlowStatus()); log.info("流程监听器流程状态:{}", flowParams.getFlowStatus());
} }
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) List<FlowTask> flowTasks = iFlwTaskService.selectByInstId(instance.getId());
.eq(FlowTask::getInstanceId, instance.getId()));
if (CollUtil.isEmpty(flowTasks)) { if (CollUtil.isEmpty(flowTasks)) {
// 若流程已结束更新状态为已完成并发送完成事件 // 若流程已结束更新状态为已完成并发送完成事件
flwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus()); 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.common.satoken.utils.LoginHelper;
import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.dto.FlowParams;
import org.dromara.warm.flow.core.entity.*; 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.NodeType;
import org.dromara.warm.flow.core.enums.SkipType; import org.dromara.warm.flow.core.enums.SkipType;
import org.dromara.warm.flow.core.enums.UserType; import org.dromara.warm.flow.core.enums.UserType;
@ -187,8 +186,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
//添加抄送人 //添加抄送人
setCopy(task, wfCopyList); setCopy(task, wfCopyList);
// 根据流程实例ID查询所有关联的任务 // 根据流程实例ID查询所有关联的任务
List<FlowTask> flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) List<FlowTask> flowTasks = selectByInstId(instance.getId());
.eq(FlowTask::getInstanceId, instance.getId()));
List<User> userList = new ArrayList<>(); List<User> userList = new ArrayList<>();
// 遍历任务列表处理每个任务的办理人 // 遍历任务列表处理每个任务的办理人
for (FlowTask flowTask : flowTasks) { for (FlowTask flowTask : flowTasks) {
@ -568,18 +566,18 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
// 批量删除现有任务的办理人记录 // 批量删除现有任务的办理人记录
if (CollUtil.isNotEmpty(flowTasks)) { if (CollUtil.isNotEmpty(flowTasks)) {
userService.deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId)); userService.deleteByTaskIds(StreamUtils.toList(flowTasks, FlowTask::getId));
} List<User> userList = flowTasks.stream()
List<User> userList = flowTasks.stream() .map(flowTask -> {
.map(flowTask -> { FlowUser flowUser = new FlowUser();
FlowUser flowUser = new FlowUser(); flowUser.setType(UserType.APPROVAL.getKey());
flowUser.setType(UserType.APPROVAL.getKey()); flowUser.setProcessedBy(userId);
flowUser.setProcessedBy(userId); flowUser.setAssociated(flowTask.getId());
flowUser.setAssociated(flowTask.getId()); return flowUser;
return flowUser; })
}) .collect(Collectors.toList());
.collect(Collectors.toList()); if (CollUtil.isNotEmpty(userList)) {
if (CollUtil.isNotEmpty(userList)) { userService.saveBatch(userList);
userService.saveBatch(userList); }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);