public JobVO jobDetails()

in bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java [110:143]


    public JobVO jobDetails(Long clusterId, Long jobId) {
        JobPO jobPO = jobDao.findById(jobId);
        List<StageVO> stages = new ArrayList<>();
        List<StagePO> stagePOList = stageDao.findByJobId(jobId);
        List<StagePO> runningStagePOList = new ArrayList<>();
        for (int i = 0; i < stagePOList.size(); i++) {
            StagePO stagePO = findCorrectStagePO(stagePOList, i + 1);
            if (stagePO == null) {
                throw new ApiException(ApiExceptionEnum.JOB_NOT_FOUND);
            }

            if (List.of(JobState.PROCESSING, JobState.SUCCESSFUL).contains(JobState.fromString(stagePO.getState()))) {
                runningStagePOList.add(stagePO);
            }

            StageVO stageVO = StageConverter.INSTANCE.fromPO2VO(stagePO);
            List<TaskPO> taskPOList = taskDao.findByStageId(stagePO.getId());
            List<TaskVO> taskVOList = TaskConverter.INSTANCE.fromPO2VO(taskPOList);
            stageVO.setTasks(taskVOList);
            stages.add(stageVO);
        }

        JobVO jobVO = JobConverter.INSTANCE.fromPO2VO(jobPO);
        if (stagePOList.isEmpty()) {
            jobVO.setProgress(1);
        } else {
            jobVO.setProgress(new BigDecimal(runningStagePOList.size())
                    .divide(new BigDecimal(stagePOList.size()), 2, RoundingMode.HALF_UP)
                    .multiply(new BigDecimal(100))
                    .intValue());
        }
        jobVO.setStages(stages);
        return jobVO;
    }