OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -10,6 +10,7 @@
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.mapper.IssueTypeMapper;
import kr.wisestone.owl.repository.IssueTypeRepository;
import kr.wisestone.owl.repository.ProjectClosureRepository;
import kr.wisestone.owl.repository.ProjectRepository;
import kr.wisestone.owl.service.*;
import kr.wisestone.owl.util.ConvertUtil;
@@ -66,6 +67,9 @@
    @Autowired
    private UserService userService;
    @Autowired
    private ProjectClosureRepository projectClosureRepository;
    @Autowired
    private ExcelView excelView;
@@ -187,11 +191,42 @@
                                           IssueTypeCondition condition, Pageable pageable) {
        List<Long> downProjectIds = Lists.newArrayList();
        List<Long> allProjectIds = Lists.newArrayList();
        List<ProjectClosure> projectClosures = Lists.newArrayList();
        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
        condition.setPageSize(pageable.getPageSize());
        condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
        if (condition.getProjectId() == null) {
            List<ProjectVo> projectVos = this.projectService.findByIncludeProject(Lists.newArrayList("01", "02", "03"), ProjectType.BTS_PROJECT.toString());
            if (projectVos != null && projectVos.size() > 0) {
                for (ProjectVo projectVo : projectVos) {
                    allProjectIds.add(projectVo.getId());
                    projectClosures = this.projectClosureRepository.findByParentProjectId(projectVo.getId());
                    if (projectClosures != null && projectClosures.size() > 0) {
                        for (ProjectClosure projectClosure : projectClosures) {
                            allProjectIds.add(projectClosure.getProject().getId());
                        }
                    }
                }
            }
        }else {
            projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
        }
        if (projectClosures != null && projectClosures.size() > 0) {
            for (ProjectClosure projectClosure : projectClosures) {
                Long downProjectId = projectClosure.getProject().getId();
                downProjectIds.add(downProjectId);
                allProjectIds.add(downProjectId);
            }
        }
        condition.setDownProjectIds(downProjectIds);
        if (condition.getProjectId() == null) {
            condition.setAllProjectIds(allProjectIds);
        }
        List<Map<String, Object>> results = this.issueTypeMapper.find(condition);
        for (Map<String, Object> result : results) {
            Long projectId = MapUtil.getLong(result, "projectId");
@@ -212,9 +247,6 @@
        Long totalCount = this.issueTypeMapper.count(condition);
        int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
        List<IssueTypeVo> issueTypeVos = ConvertUtil.convertListToListClass(results, IssueTypeVo.class);
//        for (IssueTypeVo issueTypeVo : issueTypeVos) {
//
//        }
        //  이슈 유형에 연결된 워크플로우 정보를 셋팅한다.
        if (condition.getDeep() != null) {
@@ -226,6 +258,7 @@
        /*this.setUseIssueTypeByCompanyField(issueTypeVos);
        this.setUseIssueTypeByIspField(issueTypeVos);
        this.setUseIssueTypeByHostingField(issueTypeVos);*/
        this.setUsePartner(issueTypeVos);
        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                totalPage, totalCount));
@@ -252,6 +285,22 @@
        }
    }
    //  이슈 유형에 연결된 파트너 정보를 셋팅한다.
    private void setUsePartner(List<IssueTypeVo> issueTypeVos) {
        for (IssueTypeVo issueTypeVo : issueTypeVos) {
            List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
            if (issueTypeVo.getUsePartners() != null) {
                for (Integer usePartner : UsePartner.partners) {// 1 // 2 // 4
                    UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(issueTypeVo.getUsePartners(), usePartner);//3, 1 / 3, 2 / 3, 4
                    if (usePartnerVo != null) {
                        usePartnerVos.add(usePartnerVo);
                    }
                }
                issueTypeVo.setUsePartnerVos(usePartnerVos);
            }
        }
    }
    //  이슈 유형에 연결된 프로젝트 정보를 셋팅한다.
    private void setUseIssueTypeByProject(List<IssueTypeVo> issueTypeVos) {
        for (IssueTypeVo issueTypeVo : issueTypeVos) {