diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java index a9ca5ba5..40f9a8aa 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java @@ -44,4 +44,11 @@ public interface BpmTaskExtMapper extends BaseMapperX { .eq(BpmTaskExtDO::getProcessInstanceId, processInstanceId) .eq(BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.APPROVE.getResult())); } + + default List selectTask(List processInstanceId, Integer result) { + + return selectList(new LambdaQueryWrapperX() + .inIfPresent(BpmTaskExtDO::getProcessInstanceId, processInstanceId) + .eqIfPresent(BpmTaskExtDO::getResult, result)); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAWorkTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAWorkTaskServiceImpl.java index 8aff3509..92e8c098 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAWorkTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAWorkTaskServiceImpl.java @@ -11,12 +11,15 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.worktask.BpmOAWorkTask import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile; import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAWorkTaskConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAWorkTaskDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAWorkTaskMapper; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -50,7 +53,7 @@ public class BpmOAWorkTaskServiceImpl extends BpmOABaseService implements BpmOAW /** * OA 请假对应的流程定义 KEY */ - public static final String PROCESS_KEY = "oa_work_task"; + public static final String PROCESS_KEY = "work_task"; @Resource private BpmOAWorkTaskMapper workTaskMapper; @@ -67,6 +70,10 @@ public class BpmOAWorkTaskServiceImpl extends BpmOABaseService implements BpmOAW @Resource private DeptApi deptApi; + @Resource + @Lazy + private BpmTaskService taskService; + @Override @Transactional(rollbackFor = Exception.class) public Long createWorkTask(Long userId, BpmOAWorkTaskReqVO createReqVO) { @@ -204,10 +211,16 @@ public class BpmOAWorkTaskServiceImpl extends BpmOABaseService implements BpmOAW List fromUserIds = pageResult.getList().stream().map(BpmOAWorkTaskDO::getFromUserId).collect(Collectors.toList()); Map fromUserMap = userApi.getUserMap(fromUserIds); + //获得任务分配processInstanceId + List processInstanceIds = pageResult.getList().stream().map(BpmOAWorkTaskDO::getProcessInstanceId).collect(Collectors.toList()); + List taskExtDOS = taskService.getTaskByProcessInstanceIdAndResult(processInstanceIds, BpmProcessInstanceResultEnum.PROCESS.getResult()); + Map taskExtDOMap = convertMap(taskExtDOS, BpmTaskExtDO::getProcessInstanceId); + PageResult dataPage = BeanUtils.toBean(pageResult, BpmOAWorkTaskRespVO.class); dataPage.getList().forEach(data -> { data.setFromUserName(fromUserMap.get(data.getFromUserId()).getNickname()); + data.setTaskId(taskExtDOMap.get(data.getProcessInstanceId()).getTaskId()); }); return dataPage; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index 22f8c6f1..3cbb70db 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -204,4 +204,6 @@ public interface BpmTaskService { * @return 当前任务的taskId */ String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ; + + List getTaskByProcessInstanceIdAndResult(List processInstanceId, Integer result); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index 642d1c75..393735c2 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -24,7 +24,6 @@ import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; -import cn.iocoder.yudao.module.system.api.dept.PostApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; @@ -91,9 +90,6 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Resource private DeptApi deptApi; - @Resource - private PostApi postApi; - @Resource private BpmTaskExtMapper taskExtMapper; @@ -122,8 +118,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { Map bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); // 获得 ProcessInstance Map - Set ids = new HashSet<>(); - ids.addAll(processInstanceIds); + Set ids = new HashSet<>(processInstanceIds); Map historicProcessInstanceMap = processInstanceService.getHistoricProcessInstanceMap(ids); @@ -1232,4 +1227,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { throw exception(TASK_NOT_EXISTS); } } + + @Override + public List getTaskByProcessInstanceIdAndResult(List processInstanceId, Integer result) { + + return taskExtMapper.selectTask(processInstanceId, result); + } }