feat(sj_map_reduce): 获取任务项树列表接口支持多层级
This commit is contained in:
parent
d09009f342
commit
84b64ffcc3
@ -32,7 +32,7 @@ public class JobTaskController {
|
|||||||
|
|
||||||
@GetMapping("/tree/list")
|
@GetMapping("/tree/list")
|
||||||
@LoginRequired
|
@LoginRequired
|
||||||
public PageResult<List<Tree<Long>>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO) {
|
public List<JobTaskResponseVO> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO) {
|
||||||
return jobTaskService.getTreeJobTask(jobTaskQueryVO);
|
return jobTaskService.getTreeJobTask(jobTaskQueryVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,13 +15,16 @@ public class JobTaskResponseVO {
|
|||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
private Long key;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组名称
|
* 组名称
|
||||||
*/
|
*/
|
||||||
private String groupName;
|
private String groupName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务名称
|
||||||
|
*/
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务信息id
|
* 任务信息id
|
||||||
*/
|
*/
|
||||||
|
@ -16,5 +16,5 @@ public interface JobTaskService {
|
|||||||
|
|
||||||
PageResult<List<JobTaskResponseVO>> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO);
|
PageResult<List<JobTaskResponseVO>> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO);
|
||||||
|
|
||||||
PageResult<List<Tree<Long>>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO);
|
List<JobTaskResponseVO> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO);
|
||||||
}
|
}
|
||||||
|
@ -48,24 +48,11 @@ public class JobTaskServiceImpl implements JobTaskService {
|
|||||||
|
|
||||||
List<JobTask> records = selectPage.getRecords();
|
List<JobTask> records = selectPage.getRecords();
|
||||||
|
|
||||||
if (CollUtil.isEmpty(records)) {
|
return new PageResult<>(pageDTO, convertJobTaskList(records));
|
||||||
return new PageResult<>(pageDTO, new ArrayList<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<JobTaskResponseVO> jobTaskResponseVOs = JobTaskResponseVOConverter.INSTANCE.convertList(
|
|
||||||
records);
|
|
||||||
|
|
||||||
Set<Long> parentIds = StreamUtils.toSet(jobTaskResponseVOs, JobTaskResponseVO::getId);
|
|
||||||
List<JobTask> jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper<JobTask>()
|
|
||||||
.select(JobTask::getParentId).in(JobTask::getParentId, parentIds));
|
|
||||||
Set<Long> jobTaskParentIds = StreamUtils.toSet(jobTasks, JobTask::getParentId);
|
|
||||||
jobTaskResponseVOs.forEach(jobTask -> jobTask.setChildNode(!jobTaskParentIds.contains(jobTask.getId())));
|
|
||||||
|
|
||||||
return new PageResult<>(pageDTO, jobTaskResponseVOs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<List<Tree<Long>>> getTreeJobTask(final JobTaskQueryVO queryVO) {
|
public List<JobTaskResponseVO> getTreeJobTask(final JobTaskQueryVO queryVO) {
|
||||||
List<JobTask> taskList = jobTaskMapper.selectList(
|
List<JobTask> taskList = jobTaskMapper.selectList(
|
||||||
new LambdaQueryWrapper<JobTask>()
|
new LambdaQueryWrapper<JobTask>()
|
||||||
.eq(Objects.nonNull(queryVO.getParentId()), JobTask::getParentId, queryVO.getParentId())
|
.eq(Objects.nonNull(queryVO.getParentId()), JobTask::getParentId, queryVO.getParentId())
|
||||||
@ -74,15 +61,24 @@ public class JobTaskServiceImpl implements JobTaskService {
|
|||||||
// SQLServer 分页必须 ORDER BY
|
// SQLServer 分页必须 ORDER BY
|
||||||
.orderByAsc(JobTask::getJobId));
|
.orderByAsc(JobTask::getJobId));
|
||||||
|
|
||||||
TreeNodeConfig config = new TreeNodeConfig();
|
return convertJobTaskList(taskList);
|
||||||
config.setNameKey("taskName");
|
|
||||||
config.setChildrenKey("children");
|
|
||||||
List<Tree<Long>> treeList = TreeUtil.build(taskList, Objects.nonNull(queryVO.getParentId()) ? queryVO.getParentId() : 0L, config, (jobTask, tree) -> {
|
|
||||||
tree.putAll(JsonUtil.parseHashMap(JsonUtil.toJsonString(jobTask), Object.class));
|
|
||||||
tree.setId(jobTask.getId());
|
|
||||||
tree.setParentId(jobTask.getParentId());
|
|
||||||
});
|
|
||||||
|
|
||||||
return new PageResult<>(new PageDTO<>(queryVO.getPage(), queryVO.getSize(), treeList.size()), treeList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<JobTaskResponseVO> convertJobTaskList(List<JobTask> taskList) {
|
||||||
|
if (CollUtil.isEmpty(taskList)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<JobTaskResponseVO> jobTaskResponseVOs = JobTaskResponseVOConverter.INSTANCE.convertList(
|
||||||
|
taskList);
|
||||||
|
|
||||||
|
Set<Long> parentIds = StreamUtils.toSet(jobTaskResponseVOs, JobTaskResponseVO::getId);
|
||||||
|
List<JobTask> jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper<JobTask>()
|
||||||
|
.select(JobTask::getParentId).in(JobTask::getParentId, parentIds));
|
||||||
|
Set<Long> jobTaskParentIds = StreamUtils.toSet(jobTasks, JobTask::getParentId);
|
||||||
|
jobTaskResponseVOs.forEach(jobTask -> jobTask.setChildNode(!jobTaskParentIds.contains(jobTask.getId())));
|
||||||
|
|
||||||
|
return jobTaskResponseVOs;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user