feat(sj_map_reduce): 获取任务项树列表接口支持多层级
This commit is contained in:
		
							parent
							
								
									f6d05621cf
								
							
						
					
					
						commit
						ebbcbbd990
					
				@ -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