From 091b698701b0f77c3746ac9cfe03e0c4d272cbfd Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 24 12월 2021 18:14:58 +0900
Subject: [PATCH] 헤더에서 전체 프로젝트 선택 시 속해있지 않는 다른 프로젝트의 이슈유형리스트까지 보이는 문제 해결

---
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index b32b1d4..561db3a 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -191,20 +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());
 
-        List<ProjectClosure> projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
-        if (projectClosures != null) {
+
+        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");

--
Gitblit v1.8.0