From 123374115c47cf25489e1ab3e1faa7ae79b7f493 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 07 12월 2021 11:02:04 +0900 Subject: [PATCH] 미완료 하위이슈 / 전체 하위이슈 수정 완료 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 84 +++++++++++++++++++++++++++++++++-------- 1 files changed, 67 insertions(+), 17 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index 9103bfb..72e5bc6 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -18,6 +18,7 @@ import kr.wisestone.owl.mapper.IssueMapper; import kr.wisestone.owl.mapper.ProjectMapper; import kr.wisestone.owl.repository.IssueRepository; +import kr.wisestone.owl.repository.UserDepartmentRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.*; import kr.wisestone.owl.util.DateUtil; @@ -163,6 +164,9 @@ @Autowired private SimpMessagingTemplate simpMessagingTemplate; + + @Autowired + private UserDepartmentRepository userDepartmentRepository; @Override protected JpaRepository<Issue, Long> getRepository() { @@ -471,7 +475,6 @@ // HOSTING �젙蹂� ���옣 this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); - // 泥⑤� �뙆�씪 ���옣 // multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎. List<Map<String, Object>> convertFileMaps = this.convertMultipartFileToFile(multipartFiles); @@ -645,6 +648,19 @@ } } + void SetMyDepartmentId(IssueCondition issueCondition){ + Long loginId = issueCondition.getLoginUserId(); + List<Long> myDepartmentIds = Lists.newArrayList(); + List<UserDepartment> myDepartments = this.userDepartmentRepository.findByUserId(loginId); + + if(myDepartments != null && myDepartments.size() > 0){ + for(UserDepartment myDepartment : myDepartments){ + myDepartmentIds.add(myDepartment.getDepartmentId()); + } + } + issueCondition.setMyDepartmentIds(myDepartmentIds); + } + // �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎. @Override @Transactional(readOnly = true) @@ -675,12 +691,25 @@ List<String> issueKeys = Lists.newArrayList(issueIds); issueCondition.setIssueIds(issueKeys); - List<Map<String, Object>> results = this.issueMapper.find(issueCondition); + issueCondition.setLoginUserId(this.webAppUtil.getLoginId()); + issueCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); + User user = this.webAppUtil.getLoginUserObject(); + + List<Map<String, Object>> results = Lists.newArrayList(); + Long totalCount = 0L; + + if (this.userWorkspaceService.checkWorkspaceManager(user)) { + results = this.issueMapper.find(issueCondition); + totalCount = this.issueMapper.count(issueCondition); + } else{ + this.SetMyDepartmentId(issueCondition); + results = this.issueMapper.findByDepartment(issueCondition); + totalCount = this.issueMapper.countByDepartment(issueCondition); + } // �뒠�떇 �쟾 - 0.8, 0.9, 0.9, 0.9, 0.9 /*StopWatch serviceStart = new StopWatch(); serviceStart.start();*/ - Long totalCount = this.issueMapper.count(issueCondition); // �뒠�떇 �쟾 - 1.1, 1.1, 1.3, 1.2 /*serviceStart.stop(); @@ -690,7 +719,6 @@ // �씠�뒋 �븘�씠�뵒 珥덇린�솕 issueCondition.setIssueIds(Lists.newArrayList()); // Map �뿉 �엳�뒗 �뜲�씠�꽣瑜� IssueVo �뜲�씠�꽣濡� 蹂��솚�븳�떎. - User user = this.webAppUtil.getLoginUserObject(); this.setMapToIssueVo(results, issueVos, issueCondition, user); this.setCountDownIssues(results, issueVos); @@ -704,21 +732,33 @@ return issueVos; } - private void setCountDownIssues(List<Map<String, Object>> results, List<IssueVo> issueVos) { + @Override + @Transactional(readOnly = true) + public void setCountDownIssues(List<Map<String, Object>> results, List<IssueVo> issueVos) { for (Map<String, Object> result : results){ List<Issue> downIssues = this.issueRepository.findByParentIssueId((Long) result.get("id")); //�븯�쐞�씠�뒋 媛��졇�삤湲� if(downIssues != null && downIssues.size() > 0){ //�긽�쐞�씠�뒋 媛�吏�怨� �엳�뒗 �븷�뱾�씠 �엳�쑝硫� - int downIssueCount = 0; + int downIssueAllCount = 0;// �븯�쐞�씠�뒋 �쟾泥� 移댁슫�듃 + int downIssueCount = 0;// �븯�쐞�씠�뒋 誘몄셿猷� 移댁슫�듃 for(Issue downIssue : downIssues){ - downIssueCount ++; + downIssueAllCount ++; Long parentIssueId = downIssue.getParentIssue().getId(); Issue parentIssue = this.getIssue(parentIssueId); IssueVo parentIssueVo = ConvertUtil.copyProperties(parentIssue, IssueVo.class); - parentIssueVo.setDownIssueCount(downIssueCount); + parentIssueVo.setDownIssueAllCount(downIssueAllCount); + + IssueStatus downIssueStatus = this.issueStatusService.getIssueStatus(downIssue.getIssueStatus().getId()); + IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); + downIssueVo.setIssueStatusType(downIssueStatus.getIssueStatusType().toString()); + + if(!downIssueVo.getIssueStatusType().equals("CLOSE")){ //誘몄셿猷� �븯�쐞�씠�뒋 泥댄겕 + downIssueCount ++; + } for(IssueVo issueVo : issueVos){ if(issueVo.getId().equals(parentIssueVo.getId())){ - issueVo.setDownIssueCount(parentIssueVo.getDownIssueCount()); + issueVo.setDownIssueCount(downIssueCount); + issueVo.setDownIssueAllCount(parentIssueVo.getDownIssueAllCount()); } } } @@ -1149,15 +1189,20 @@ if(downIssues != null && downIssues.size()>0){ List<IssueVo> resultList = new ArrayList<>(); for(Issue downIssue : downIssues){ - IssueVo newIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); - newIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class)); - newIssueVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class)); - newIssueVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class)); - this.setRegister(downIssue, newIssueVo); // �벑濡앹옄 - this.setIssueDepartment(downIssue, newIssueVo); // �떞�떦遺��꽌 �젙蹂� �뀑�똿 - this.setIssueCustomFields(downIssue, newIssueVo); // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿 + IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); + downIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class)); + downIssueVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class)); + downIssueVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class)); + //�씠�뒋 �긽�깭 異붽� + IssueStatusVo issueStatusVo = ConvertUtil.copyProperties(downIssue.getIssueStatus(), IssueStatusVo.class, "issueStatusType"); + issueStatusVo.setIssueStatusType(downIssue.getIssueStatus().getIssueStatusType().toString()); + downIssueVo.setIssueStatusVo(issueStatusVo); - resultList.add(newIssueVo); + this.setRegister(downIssue, downIssueVo); // �벑濡앹옄 + this.setIssueDepartment(downIssue, downIssueVo); // �떞�떦遺��꽌 �젙蹂� �뀑�똿 + this.setIssueCustomFields(downIssue, downIssueVo); // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿 + + resultList.add(downIssueVo); } issueVo.setIssueDownVos(resultList); } @@ -1251,6 +1296,11 @@ issueRelationVo.setIssueTypeVo(ConvertUtil.copyProperties(relationIssue.getIssueType(), IssueTypeVo.class)); issueRelationVo.setPriorityVo(ConvertUtil.copyProperties(relationIssue.getPriority(), PriorityVo.class)); issueRelationVo.setSeverityVo(ConvertUtil.copyProperties(relationIssue.getSeverity(), SeverityVo.class)); + //�씠�뒋 �긽�깭 異붽� + IssueStatusVo issueStatusVo = ConvertUtil.copyProperties(relationIssue.getIssueStatus(), IssueStatusVo.class, "issueStatusType"); + issueStatusVo.setIssueStatusType(relationIssue.getIssueStatus().getIssueStatusType().toString()); + issueRelationVo.setIssueStatusVo(issueStatusVo); + this.setRegister(relationIssue, relIssueVo); // �벑濡앹옄 this.setIssueDepartment(relationIssue, relIssueVo); // �떞�떦遺��꽌 �젙蹂� �뀑�똿 this.setIssueCustomFields(relationIssue, relIssueVo); // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿 -- Gitblit v1.8.0