Search in sources :

Example 26 with ScheduleTaskShade

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);
}
Also used : User(com.dtstack.taier.dao.domain.User) ReturnScheduleTaskVO(com.dtstack.taier.develop.vo.schedule.ReturnScheduleTaskVO) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) Timestamp(java.sql.Timestamp) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) PageResult(com.dtstack.taier.dao.pager.PageResult)

Example 27 with ScheduleTaskShade

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);
}
Also used : ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade)

Example 28 with 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);
}
Also used : ScheduleTaskShadeInfo(com.dtstack.taier.dao.domain.ScheduleTaskShadeInfo) ScheduleTaskShadeDTO(com.dtstack.taier.scheduler.dto.schedule.ScheduleTaskShadeDTO) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) ScheduleTaskTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskTaskShade)

Example 29 with ScheduleTaskShade

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();
}
Also used : ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade)

Example 30 with ScheduleTaskShade

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;
}
Also used : ReturnTaskDisplayVO(com.dtstack.taier.develop.vo.schedule.ReturnTaskDisplayVO) ServiceImpl(com.baomidou.mybatisplus.extension.service.impl.ServiceImpl) QueryTaskDisplayDTO(com.dtstack.taier.scheduler.dto.schedule.QueryTaskDisplayDTO) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) UserService(com.dtstack.taier.develop.service.user.UserService) ReturnTaskDisplayVO(com.dtstack.taier.develop.vo.schedule.ReturnTaskDisplayVO) TaskNodeVO(com.dtstack.taier.develop.vo.schedule.TaskNodeVO) EnvironmentContext(com.dtstack.taier.common.env.EnvironmentContext) TenantService(com.dtstack.taier.develop.service.console.TenantService) Autowired(org.springframework.beans.factory.annotation.Autowired) Set(java.util.Set) Collectors(java.util.stream.Collectors) ScheduleTaskTaskShadeMapper(com.dtstack.taier.dao.mapper.ScheduleTaskTaskShadeMapper) Sets(com.google.common.collect.Sets) DisplayDirect(com.dtstack.taier.common.enums.DisplayDirect) ScheduleTaskTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskTaskShade) List(java.util.List) Tenant(com.dtstack.taier.dao.domain.Tenant) Lists(com.google.common.collect.Lists) CollectionUtils(org.apache.commons.collections.CollectionUtils) Service(org.springframework.stereotype.Service) Map(java.util.Map) JobUtils(com.dtstack.taier.develop.utils.JobUtils) EScheduleJobType(com.dtstack.taier.common.enums.EScheduleJobType) Deleted(com.dtstack.taier.common.enums.Deleted) List(java.util.List) TaskNodeVO(com.dtstack.taier.develop.vo.schedule.TaskNodeVO) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) ScheduleTaskTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskTaskShade)

Aggregations

ScheduleTaskShade (com.dtstack.taier.dao.domain.ScheduleTaskShade)33 ScheduleJob (com.dtstack.taier.dao.domain.ScheduleJob)13 RdosDefineException (com.dtstack.taier.common.exception.RdosDefineException)12 Deleted (com.dtstack.taier.common.enums.Deleted)7 List (java.util.List)7 Collectors (java.util.stream.Collectors)7 CollectionUtils (org.apache.commons.collections.CollectionUtils)7 Autowired (org.springframework.beans.factory.annotation.Autowired)7 UserService (com.dtstack.taier.develop.service.user.UserService)6 Lists (com.google.common.collect.Lists)6 Timestamp (java.sql.Timestamp)6 Map (java.util.Map)6 Service (org.springframework.stereotype.Service)6 JSONObject (com.alibaba.fastjson.JSONObject)5 ServiceImpl (com.baomidou.mybatisplus.extension.service.impl.ServiceImpl)5 EnvironmentContext (com.dtstack.taier.common.env.EnvironmentContext)5 ScheduleTaskTaskShade (com.dtstack.taier.dao.domain.ScheduleTaskTaskShade)5 EScheduleJobType (com.dtstack.taier.common.enums.EScheduleJobType)4 Tenant (com.dtstack.taier.dao.domain.Tenant)4 User (com.dtstack.taier.dao.domain.User)4