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 | 66 +++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 23 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 78c915a..561db3a 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/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; @@ -33,6 +34,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; @Service public class IssueTypeServiceImpl extends AbstractServiceImpl<IssueType, Long, JpaRepository<IssueType, Long>> implements IssueTypeService { @@ -65,6 +67,9 @@ @Autowired private UserService userService; + + @Autowired + private ProjectClosureRepository projectClosureRepository; @Autowired private ExcelView excelView; @@ -185,10 +190,43 @@ public List<IssueTypeVo> findIssueType(Map<String, Object> resJsonData, 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"); @@ -270,9 +308,11 @@ for (IssueTypeVo issueTypeVo : issueTypeVos) { IssueType issueType = this.getIssueType(issueTypeVo.getId()); - IssueStatus issueStatus = issueType.getIssueStatus(); - if (issueStatus != null) { - issueTypeVo.setCompleteIssueStatusVo(ConvertUtil.copyProperties(issueType.getIssueStatus(), IssueStatusVo.class)); + Set<IssueTypeApiEndStatus> issueTypeApiEndStatuses = issueType.getIssueTypeApiEndStatuses(); + if (issueTypeApiEndStatuses != null && issueTypeApiEndStatuses.size() > 0) { + IssueTypeApiEndStatus issueTypeApiEndStatus = issueTypeApiEndStatuses.iterator().next(); + + issueTypeVo.setCompleteIssueStatusVo(ConvertUtil.copyProperties(issueTypeApiEndStatus.getIssueStatus(), IssueStatusVo.class)); } } } @@ -323,26 +363,6 @@ } resJsonData.put(Constants.RES_KEY_CONTENTS, issueTypeVo); - } - - // �씠�뒋 �쑀�삎�쓣 �닔�젙�븳�떎. �옄�룞 醫낅즺 �꽕�젙留� �닔�젙 - @Override - @Transactional - public IssueType modifyIssueTypeCompleteIssueStatus(IssueTypeForm issueTypeForm) { - // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. - this.workspaceService.checkUseWorkspace(); - - IssueType issueType = this.getIssueType(issueTypeForm.getId()); - if (issueTypeForm.getCompleteIssueStatusId() != null) { - // api�뿉�꽌 �궗�슜�븯�뒗 �옄�룞 醫낅즺 �씠�뒋 �긽�깭 - IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueTypeForm.getCompleteIssueStatusId()); - issueType.setIssueStatus(issueStatus); - }else { - issueType.setIssueStatus(null); - } - - this.issueTypeRepository.saveAndFlush(issueType); - return issueType; } // �씠�뒋 �쑀�삎�쓣 �닔�젙�븳�떎. -- Gitblit v1.8.0