use of com.dtstack.taier.dao.domain.ScheduleTaskTaskShade in project Taier by DTStack.
the class TaskTaskService method displayAllFlowSubTasks.
/**
* 查询所有工作流节点
*
* @param taskShade 工作流任务
* @return
*/
private ReturnTaskDisplayVO displayAllFlowSubTasks(ScheduleTaskShade taskShade) {
ReturnTaskDisplayVO vo = new ReturnTaskDisplayVO();
// 头节点
TaskNodeVO root = new TaskNodeVO();
setNode(taskShade, root);
vo.setRootTaskNode(root);
// 查询出所有工作流任务
List<ScheduleTaskShade> taskShadeList = taskService.findAllFlowTasks(taskShade.getTaskId());
if (CollectionUtils.isEmpty(taskShadeList)) {
return vo;
}
// 查询出这些工作流的关系数据
Map<Long, ScheduleTaskShade> taskMaps = taskShadeList.stream().collect(Collectors.toMap(ScheduleTaskShade::getTaskId, g -> (g)));
Set<Long> taskSet = Sets.newHashSet(taskMaps.keySet());
taskSet.add(taskShade.getTaskId());
List<ScheduleTaskTaskShade> taskTaskShades = this.lambdaQuery().in(ScheduleTaskTaskShade::getTaskId, taskSet).eq(ScheduleTaskTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).list();
if (CollectionUtils.isEmpty(taskTaskShades)) {
return vo;
}
// 递归工作流任务的关系
Map<Long, List<ScheduleTaskTaskShade>> taskTaskMap = taskTaskShades.stream().collect(Collectors.groupingBy(ScheduleTaskTaskShade::getParentTaskId));
root.setChildNode(findChildNode(root, taskMaps, taskTaskMap));
return vo;
}
Aggregations