Search in sources :

Example 1 with QueryFillDataListDTO

use of com.dtstack.taier.scheduler.dto.fill.QueryFillDataListDTO in project Taier by DTStack.

the class JobService method fillDataList.

/**
 * 补数据列表
 *
 * @param dto 查询列表条件
 * @return 补数据列表数据
 */
public PageResult<List<ReturnFillDataListVO>> fillDataList(QueryFillDataListDTO dto) {
    Page<ScheduleFillDataJob> page = new Page<>(dto.getCurrentPage(), dto.getPageSize());
    // 查询补数据列表
    page = fillDataJobService.lambdaQuery().like(StringUtils.isNotBlank(dto.getJobName()), ScheduleFillDataJob::getJobName, dto.getJobName()).eq(dto.getOperatorId() != null, ScheduleFillDataJob::getCreateUserId, dto.getOperatorId()).eq(StringUtils.isNotBlank(dto.getRunDay()), ScheduleFillDataJob::getRunDay, dto.getRunDay()).eq(ScheduleFillDataJob::getTenantId, dto.getTenantId()).orderBy(true, false, ScheduleFillDataJob::getGmtCreate).page(page);
    List<ScheduleFillDataJob> records = page.getRecords();
    List<ReturnFillDataListVO> fillDataReturnListVOs = Lists.newArrayList();
    if (CollectionUtils.isNotEmpty(records)) {
        // 封装结果集
        Map<Long, ScheduleFillDataJob> fillDataJobMap = records.stream().collect(Collectors.toMap(ScheduleFillDataJob::getId, g -> (g)));
        List<Long> userIds = records.stream().map(ScheduleFillDataJob::getCreateUserId).collect(Collectors.toList());
        Map<Long, User> userMap = userService.getUserMap(userIds);
        List<CountFillDataJobStatusPO> statistics = this.baseMapper.countByFillIdGetAllStatus(fillDataJobMap.keySet());
        Map<Long, List<CountFillDataJobStatusPO>> statisticsGroup = statistics.stream().collect(Collectors.groupingBy(CountFillDataJobStatusPO::getFillId));
        for (ScheduleFillDataJob scheduleFillDataJob : records) {
            ReturnFillDataListVO fillDataReturnListVO = FillDataJobMapstructTransfer.INSTANCE.fillDataListDTOToFillDataReturnListVO(scheduleFillDataJob);
            User user = userMap.get(scheduleFillDataJob.getCreateUserId());
            if (user != null) {
                fillDataReturnListVO.setOperatorName(user.getUserName());
            }
            fillDataReturnListVO.setGmtCreate(DateUtil.getDate(scheduleFillDataJob.getGmtCreate(), DateUtil.STANDARD_DATETIME_FORMAT));
            // 计算补数据执行进度
            List<CountFillDataJobStatusPO> countFillDataJobStatusPOS = statisticsGroup.get(fillDataReturnListVO.getId());
            if (CollectionUtils.isNotEmpty(countFillDataJobStatusPOS)) {
                Map<Integer, IntSummaryStatistics> statusCount = countFillDataJobStatusPOS.stream().collect(Collectors.groupingBy(countFillDataJobStatusPO -> TaskStatus.getShowStatus(countFillDataJobStatusPO.getStatus()), Collectors.summarizingInt(CountFillDataJobStatusPO::getCount)));
                calculateStatusCount(fillDataReturnListVO, statusCount);
            }
            fillDataReturnListVOs.add(fillDataReturnListVO);
        }
    }
    return new PageResult<>(dto.getCurrentPage(), dto.getPageSize(), page.getTotal(), (int) page.getPages(), fillDataReturnListVOs);
}
Also used : ReturnJobStatusStatisticsVO(com.dtstack.taier.develop.vo.schedule.ReturnJobStatusStatisticsVO) CountFillDataJobStatusPO(com.dtstack.taier.dao.domain.po.CountFillDataJobStatusPO) UserService(com.dtstack.taier.develop.service.user.UserService) FillDataJobMapstructTransfer(com.dtstack.taier.develop.mapstruct.fill.FillDataJobMapstructTransfer) PageResult(com.dtstack.taier.dao.pager.PageResult) Autowired(org.springframework.beans.factory.annotation.Autowired) StringUtils(org.apache.commons.lang3.StringUtils) NumberUtils(org.apache.commons.lang.math.NumberUtils) DateUtil(com.dtstack.taier.pluginapi.util.DateUtil) StatusCountPO(com.dtstack.taier.dao.domain.po.StatusCountPO) TaskStatus(com.dtstack.taier.pluginapi.enums.TaskStatus) ServiceImpl(com.baomidou.mybatisplus.extension.service.impl.ServiceImpl) Wrappers(com.baomidou.mybatisplus.core.toolkit.Wrappers) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) QueryFillDataListDTO(com.dtstack.taier.scheduler.dto.fill.QueryFillDataListDTO) Timestamp(java.sql.Timestamp) ReturnJobListVO(com.dtstack.taier.develop.vo.schedule.ReturnJobListVO) QueryFillDataJobListDTO(com.dtstack.taier.scheduler.dto.fill.QueryFillDataJobListDTO) ReturnFillDataJobListVO(com.dtstack.taier.develop.vo.fill.ReturnFillDataJobListVO) ScheduleFillDataInfoDTO(com.dtstack.taier.scheduler.dto.fill.ScheduleFillDataInfoDTO) Collectors(java.util.stream.Collectors) ReturnDisplayPeriodVO(com.dtstack.taier.develop.vo.schedule.ReturnDisplayPeriodVO) FillGeneratStatusEnum(com.dtstack.taier.scheduler.enums.FillGeneratStatusEnum) Deleted(com.dtstack.taier.common.enums.Deleted) FillDataJobVO(com.dtstack.taier.develop.vo.fill.FillDataJobVO) java.util(java.util) ScheduleJob(com.dtstack.taier.dao.domain.ScheduleJob) RdosDefineException(com.dtstack.taier.common.exception.RdosDefineException) FillDataRunnable(com.dtstack.taier.scheduler.server.action.fill.FillDataRunnable) FillDataThreadPoolExecutor(com.dtstack.taier.scheduler.server.action.fill.FillDataThreadPoolExecutor) Lists(com.google.common.collect.Lists) CollectionUtils(org.apache.commons.collections.CollectionUtils) Service(org.springframework.stereotype.Service) FillStatusUpdateFinishEvent(com.dtstack.taier.develop.event.FillStatusUpdateFinishEvent) QueryJobListDTO(com.dtstack.taier.scheduler.dto.schedule.QueryJobListDTO) ErrorCode(com.dtstack.taier.common.exception.ErrorCode) ReturnFillDataListVO(com.dtstack.taier.develop.vo.fill.ReturnFillDataListVO) ScheduleFillDataJob(com.dtstack.taier.dao.domain.ScheduleFillDataJob) FillDataTypeEnum(com.dtstack.taier.scheduler.enums.FillDataTypeEnum) ScheduleJobMapper(com.dtstack.taier.dao.mapper.ScheduleJobMapper) User(com.dtstack.taier.dao.domain.User) DateTime(org.joda.time.DateTime) EScheduleType(com.dtstack.taier.common.enums.EScheduleType) Maps(com.google.common.collect.Maps) ApplicationContext(org.springframework.context.ApplicationContext) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) ScheduleFillJobParticipateDTO(com.dtstack.taier.scheduler.dto.fill.ScheduleFillJobParticipateDTO) JSON(com.alibaba.fastjson.JSON) QueryJobStatusStatisticsDTO(com.dtstack.taier.scheduler.dto.schedule.QueryJobStatusStatisticsDTO) JobMapstructTransfer(com.dtstack.taier.develop.mapstruct.job.JobMapstructTransfer) FillJobTypeEnum(com.dtstack.taier.scheduler.enums.FillJobTypeEnum) JobsStatusStatisticsPO(com.dtstack.taier.dao.domain.po.JobsStatusStatisticsPO) CountFillDataJobStatusPO(com.dtstack.taier.dao.domain.po.CountFillDataJobStatusPO) User(com.dtstack.taier.dao.domain.User) Page(com.baomidou.mybatisplus.extension.plugins.pagination.Page) PageResult(com.dtstack.taier.dao.pager.PageResult) ReturnFillDataListVO(com.dtstack.taier.develop.vo.fill.ReturnFillDataListVO) ScheduleFillDataJob(com.dtstack.taier.dao.domain.ScheduleFillDataJob)

Aggregations

JSON (com.alibaba.fastjson.JSON)1 Wrappers (com.baomidou.mybatisplus.core.toolkit.Wrappers)1 Page (com.baomidou.mybatisplus.extension.plugins.pagination.Page)1 ServiceImpl (com.baomidou.mybatisplus.extension.service.impl.ServiceImpl)1 Deleted (com.dtstack.taier.common.enums.Deleted)1 EScheduleType (com.dtstack.taier.common.enums.EScheduleType)1 ErrorCode (com.dtstack.taier.common.exception.ErrorCode)1 RdosDefineException (com.dtstack.taier.common.exception.RdosDefineException)1 ScheduleFillDataJob (com.dtstack.taier.dao.domain.ScheduleFillDataJob)1 ScheduleJob (com.dtstack.taier.dao.domain.ScheduleJob)1 ScheduleTaskShade (com.dtstack.taier.dao.domain.ScheduleTaskShade)1 User (com.dtstack.taier.dao.domain.User)1 CountFillDataJobStatusPO (com.dtstack.taier.dao.domain.po.CountFillDataJobStatusPO)1 JobsStatusStatisticsPO (com.dtstack.taier.dao.domain.po.JobsStatusStatisticsPO)1 StatusCountPO (com.dtstack.taier.dao.domain.po.StatusCountPO)1 ScheduleJobMapper (com.dtstack.taier.dao.mapper.ScheduleJobMapper)1 PageResult (com.dtstack.taier.dao.pager.PageResult)1 FillStatusUpdateFinishEvent (com.dtstack.taier.develop.event.FillStatusUpdateFinishEvent)1 FillDataJobMapstructTransfer (com.dtstack.taier.develop.mapstruct.fill.FillDataJobMapstructTransfer)1 JobMapstructTransfer (com.dtstack.taier.develop.mapstruct.job.JobMapstructTransfer)1