任务分配 分页查询增添taskId字段

This commit is contained in:
furongxin 2024-05-23 14:13:47 +08:00
parent 4a5dae14a8
commit c5defb8bf9
4 changed files with 30 additions and 7 deletions

View File

@ -44,4 +44,11 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
.eq(BpmTaskExtDO::getProcessInstanceId, processInstanceId)
.eq(BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.APPROVE.getResult()));
}
default List<BpmTaskExtDO> selectTask(List<String> processInstanceId, Integer result) {
return selectList(new LambdaQueryWrapperX<BpmTaskExtDO>()
.inIfPresent(BpmTaskExtDO::getProcessInstanceId, processInstanceId)
.eqIfPresent(BpmTaskExtDO::getResult, result));
}
}

View File

@ -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<Long> fromUserIds = pageResult.getList().stream().map(BpmOAWorkTaskDO::getFromUserId).collect(Collectors.toList());
Map<Long, AdminUserRespDTO> fromUserMap = userApi.getUserMap(fromUserIds);
//获得任务分配processInstanceId
List<String> processInstanceIds = pageResult.getList().stream().map(BpmOAWorkTaskDO::getProcessInstanceId).collect(Collectors.toList());
List<BpmTaskExtDO> taskExtDOS = taskService.getTaskByProcessInstanceIdAndResult(processInstanceIds, BpmProcessInstanceResultEnum.PROCESS.getResult());
Map<String, BpmTaskExtDO> taskExtDOMap = convertMap(taskExtDOS, BpmTaskExtDO::getProcessInstanceId);
PageResult<BpmOAWorkTaskRespVO> 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;

View File

@ -204,4 +204,6 @@ public interface BpmTaskService {
* @return 当前任务的taskId
*/
String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ;
List<BpmTaskExtDO> getTaskByProcessInstanceIdAndResult(List<String> processInstanceId, Integer result);
}

View File

@ -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<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
// 获得 ProcessInstance Map
Set<String> ids = new HashSet<>();
ids.addAll(processInstanceIds);
Set<String> ids = new HashSet<>(processInstanceIds);
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
processInstanceService.getHistoricProcessInstanceMap(ids);
@ -1232,4 +1227,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
throw exception(TASK_NOT_EXISTS);
}
}
@Override
public List<BpmTaskExtDO> getTaskByProcessInstanceIdAndResult(List<String> processInstanceId, Integer result) {
return taskExtMapper.selectTask(processInstanceId, result);
}
}