任务分配 分页查询增添taskId字段
This commit is contained in:
parent
4a5dae14a8
commit
c5defb8bf9
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -204,4 +204,6 @@ public interface BpmTaskService {
|
||||
* @return 当前任务的taskId
|
||||
*/
|
||||
String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ;
|
||||
|
||||
List<BpmTaskExtDO> getTaskByProcessInstanceIdAndResult(List<String> processInstanceId, Integer result);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user