任务分配 分页查询增添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::getProcessInstanceId, processInstanceId)
|
||||||
.eq(BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.APPROVE.getResult()));
|
.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.controller.admin.upload.UploadUserFile;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAWorkTaskConvert;
|
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.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.dal.mysql.oa.BpmOAWorkTaskMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
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.DeptApi;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
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.AdminUserApi;
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -50,7 +53,7 @@ public class BpmOAWorkTaskServiceImpl extends BpmOABaseService implements BpmOAW
|
|||||||
/**
|
/**
|
||||||
* OA 请假对应的流程定义 KEY
|
* OA 请假对应的流程定义 KEY
|
||||||
*/
|
*/
|
||||||
public static final String PROCESS_KEY = "oa_work_task";
|
public static final String PROCESS_KEY = "work_task";
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BpmOAWorkTaskMapper workTaskMapper;
|
private BpmOAWorkTaskMapper workTaskMapper;
|
||||||
@ -67,6 +70,10 @@ public class BpmOAWorkTaskServiceImpl extends BpmOABaseService implements BpmOAW
|
|||||||
@Resource
|
@Resource
|
||||||
private DeptApi deptApi;
|
private DeptApi deptApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private BpmTaskService taskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long createWorkTask(Long userId, BpmOAWorkTaskReqVO createReqVO) {
|
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());
|
List<Long> fromUserIds = pageResult.getList().stream().map(BpmOAWorkTaskDO::getFromUserId).collect(Collectors.toList());
|
||||||
Map<Long, AdminUserRespDTO> fromUserMap = userApi.getUserMap(fromUserIds);
|
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);
|
PageResult<BpmOAWorkTaskRespVO> dataPage = BeanUtils.toBean(pageResult, BpmOAWorkTaskRespVO.class);
|
||||||
dataPage.getList().forEach(data -> {
|
dataPage.getList().forEach(data -> {
|
||||||
|
|
||||||
data.setFromUserName(fromUserMap.get(data.getFromUserId()).getNickname());
|
data.setFromUserName(fromUserMap.get(data.getFromUserId()).getNickname());
|
||||||
|
data.setTaskId(taskExtDOMap.get(data.getProcessInstanceId()).getTaskId());
|
||||||
});
|
});
|
||||||
|
|
||||||
return dataPage;
|
return dataPage;
|
||||||
|
@ -204,4 +204,6 @@ public interface BpmTaskService {
|
|||||||
* @return 当前任务的taskId
|
* @return 当前任务的taskId
|
||||||
*/
|
*/
|
||||||
String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ;
|
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.definition.BpmProcessDefinitionService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
|
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.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.dept.dto.DeptRespDTO;
|
||||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
@ -91,9 +90,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
@Resource
|
@Resource
|
||||||
private DeptApi deptApi;
|
private DeptApi deptApi;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PostApi postApi;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BpmTaskExtMapper taskExtMapper;
|
private BpmTaskExtMapper taskExtMapper;
|
||||||
|
|
||||||
@ -122,8 +118,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
Map<String, BpmTaskExtDO> bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId);
|
||||||
|
|
||||||
// 获得 ProcessInstance Map
|
// 获得 ProcessInstance Map
|
||||||
Set<String> ids = new HashSet<>();
|
Set<String> ids = new HashSet<>(processInstanceIds);
|
||||||
ids.addAll(processInstanceIds);
|
|
||||||
|
|
||||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
||||||
processInstanceService.getHistoricProcessInstanceMap(ids);
|
processInstanceService.getHistoricProcessInstanceMap(ids);
|
||||||
@ -1232,4 +1227,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
throw exception(TASK_NOT_EXISTS);
|
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