diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index 355bd2e67..458a95bcc 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -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 flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) - .eq(FlowTask::getInstanceId, instance.getId())); + List flowTasks = iFlwTaskService.selectByInstId(instance.getId()); if (CollUtil.isEmpty(flowTasks)) { // 若流程已结束,更新状态为已完成并发送完成事件 flwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus()); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index a5fe14822..7b2a0d60d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -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 flowTasks = flowTaskMapper.selectList(new LambdaQueryWrapper<>(FlowTask.class) - .eq(FlowTask::getInstanceId, instance.getId())); + List flowTasks = selectByInstId(instance.getId()); List 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 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 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);