use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskService method queryTasks.
/**
* 查询任务列表
*
* @param dto 查询条件
* @return
*/
public PageResult<List<ReturnScheduleTaskVO>> queryTasks(QueryTaskListDTO dto) {
Page<ScheduleTaskShade> page = new Page<>(dto.getCurrentPage(), dto.getPageSize());
// 分页查询
Page<ScheduleTaskShade> resultPage = this.lambdaQuery().eq(ScheduleTaskShade::getFlowId, 0L).eq(ScheduleTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).like(StringUtils.isNotBlank(dto.getName()), ScheduleTaskShade::getName, dto.getName()).eq(dto.getOperatorId() != null, ScheduleTaskShade::getCreateUserId, dto.getOperatorId()).eq(dto.getTenantId() != null, ScheduleTaskShade::getTenantId, dto.getTenantId()).eq(dto.getScheduleStatus() != null, ScheduleTaskShade::getScheduleStatus, dto.getScheduleStatus()).between(dto.getStartModifiedTime() != null && dto.getEndModifiedTime() != null, ScheduleTaskShade::getGmtModified, null == dto.getStartModifiedTime() ? null : new Timestamp(dto.getStartModifiedTime()), null == dto.getEndModifiedTime() ? null : new Timestamp(dto.getEndModifiedTime())).in(CollectionUtils.isNotEmpty(dto.getTaskTypeList()), ScheduleTaskShade::getTaskType, dto.getTaskTypeList()).in(CollectionUtils.isNotEmpty(dto.getPeriodTypeList()), ScheduleTaskShade::getPeriodType, dto.getPeriodTypeList()).page(page);
List<ReturnScheduleTaskVO> scheduleTaskVOS = ScheduleTaskMapstructTransfer.INSTANCE.beanToTaskVO(resultPage.getRecords());
List<Long> userIds = resultPage.getRecords().stream().map(ScheduleTaskShade::getCreateUserId).collect(Collectors.toList());
Map<Long, User> userMap = userService.getUserMap(userIds);
scheduleTaskVOS.forEach(vo -> vo.setOperatorName(userMap.get(vo.getOperatorId()) != null ? userMap.get(vo.getOperatorId()).getUserName() : ""));
return new PageResult<>(dto.getCurrentPage(), dto.getPageSize(), resultPage.getTotal(), (int) resultPage.getPages(), scheduleTaskVOS);
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskService method updateTaskName.
/**
* 修改任务名称
*
* @param taskId 任务id
* @param name 任务名称
* @return 是否修改成功
*/
public Boolean updateTaskName(Long taskId, String name) {
if (taskId == null || StringUtils.isBlank(name)) {
return Boolean.FALSE;
}
ScheduleTaskShade scheduleTaskShade = new ScheduleTaskShade();
scheduleTaskShade.setName(name);
return this.lambdaUpdate().eq(ScheduleTaskShade::getTaskId, taskId).eq(ScheduleTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).update(scheduleTaskShade);
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskService method saveTask.
/**
* 提交单个任务 (不包括工作流)
* @param savaTaskDTO 任务
* @return 是否提交成功
*/
public Boolean saveTask(SavaTaskDTO savaTaskDTO) {
ScheduleTaskShadeDTO scheduleTaskShadeDTO = savaTaskDTO.getScheduleTaskShadeDTO();
ScheduleTaskShade scheduleTaskShade = ScheduleTaskMapstructTransfer.INSTANCE.dtoToBean(scheduleTaskShadeDTO);
ScheduleTaskShade dbTaskShade = this.lambdaQuery().eq(ScheduleTaskShade::getTaskId, scheduleTaskShade.getTaskId()).eq(ScheduleTaskShade::getIsDeleted, Deleted.NORMAL.getStatus()).one();
ScheduleTaskShadeInfo scheduleTaskShadeInfo = new ScheduleTaskShadeInfo();
scheduleTaskShadeInfo.setInfo(scheduleTaskShade.getExtraInfo());
scheduleTaskShadeInfo.setTaskId(scheduleTaskShade.getTaskId());
// 保存任务或者更新任务
if (dbTaskShade != null) {
scheduleTaskShade.setId(dbTaskShade.getId());
this.updateById(scheduleTaskShade);
scheduleTaskShadeInfoService.update(scheduleTaskShadeInfo, scheduleTaskShade.getTaskId());
} else {
this.save(scheduleTaskShade);
scheduleTaskShadeInfoService.insert(scheduleTaskShadeInfo);
}
// 保存关系
List<Long> parentTaskIdList = savaTaskDTO.getParentTaskIdList();
List<ScheduleTaskTaskShade> scheduleTaskTaskShadeList = Lists.newArrayList();
for (Long parentTaskId : parentTaskIdList) {
ScheduleTaskTaskShade scheduleTaskTaskShade = new ScheduleTaskTaskShade();
scheduleTaskTaskShade.setTenantId(scheduleTaskShade.getTenantId());
scheduleTaskTaskShade.setTaskId(scheduleTaskShade.getTaskId());
scheduleTaskTaskShade.setParentTaskId(parentTaskId);
scheduleTaskTaskShadeList.add(scheduleTaskTaskShade);
}
// TODO 这块后面还需要考虑成环判断
// 删除任务依赖
tasktaskService.lambdaUpdate().eq(ScheduleTaskTaskShade::getTaskId, scheduleTaskShade.getTaskId()).remove();
return tasktaskService.saveBatch(scheduleTaskTaskShadeList);
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade in project Taier by DTStack.
the class TaskService method deleteTask.
/**
* 删除任务
*/
public Boolean deleteTask(Long taskId, Long modifyUserId) {
if (taskId == null) {
return Boolean.FALSE;
}
// 逻辑删除任务
ScheduleTaskShade scheduleTaskShade = new ScheduleTaskShade();
scheduleTaskShade.setIsDeleted(Deleted.DELETED.getStatus());
scheduleTaskShade.setModifyUserId(modifyUserId);
this.lambdaUpdate().eq(ScheduleTaskShade::getTaskId, taskId).update(scheduleTaskShade);
// 直接删除任务依赖
return tasktaskService.lambdaUpdate().eq(ScheduleTaskTaskShade::getTaskId, taskId).remove();
}
use of com.dtstack.taier.dao.domain.ScheduleTaskShade 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