From 0dca48e62f053d2fa725649ee2842412a9b4f476 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 목, 06 1월 2022 11:42:18 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 38 insertions(+), 9 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 05f35c1..7be00d2 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -14,6 +14,7 @@ import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.DepartmentMapper; import kr.wisestone.owl.mapper.IssueMapper; +import kr.wisestone.owl.mapper.IssueRelationMapper; import kr.wisestone.owl.mapper.ProjectMapper; import kr.wisestone.owl.repository.IssueRelationRepository; import kr.wisestone.owl.repository.IssueRepository; @@ -33,6 +34,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.messaging.simp.SimpMessagingTemplate; @@ -194,6 +197,9 @@ @Autowired private WorkflowDepartmentRepository workflowDepartmentRepository; + + @Autowired + private IssueRelationMapper issueRelationMapper; @Override protected JpaRepository<Issue, Long> getRepository() { @@ -1466,13 +1472,19 @@ // �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. @Override @Transactional(readOnly = true) - public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition) { + public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) { IssueVo issueVo = new IssueVo(); if (issueCondition.getId() != null) { Issue issue = this.getIssue(issueCondition.getId()); issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); User user = this.webAppUtil.getLoginUserObject(); + + issueVo.setRelPage(relPageable.getPageNumber() * relPageable.getPageSize()); + issueVo.setRelPageSize(relPageable.getPageSize()); + + issueVo.setDownPage(downPageable.getPageNumber() * downPageable.getPageSize()); + issueVo.setDownPageSize(downPageable.getPageSize()); switch (issueCondition.getDeep()) { case "01": // �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦遺��꽌, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �뀑�똿�븳�떎. @@ -1489,7 +1501,6 @@ this.setIssueCustomFields(issue, issueVo); // �궗�슜�옄 �젙�쓽 �븘�뱶 媛� �젙蹂� �뀑�똿 this.setRelationIssue(issue, issueVo); //�뿰愿� �씪媛� �뀑�똿 this.setDownIssues(issue, issueVo); //�븯�쐞 �씠�뒋 �꽭�똿 - break; case "02": // �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂�, �뙎湲�, 湲곕줉�쓣 �뀑�똿�븳�떎. @@ -1499,11 +1510,19 @@ break; } } + Long relTotalCount = issueVo.getRelTotalCount(); + int relTotalPage = issueVo.getRelTotalPage(); + Long downTotalCount = issueVo.getDownTotalCount(); + int downTotalPage = issueVo.getDownTotalPage(); // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_DETAIL)); resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); + resJsonData.put(Constants.REQ_KEY_RELATION_ISSUE_PAGE_VO, new ResPage(relPageable.getPageNumber(), relPageable.getPageSize(), + relTotalPage, relTotalCount)); + resJsonData.put(Constants.REQ_KEY_DOWN_ISSUE_PAGE_VO, new ResPage(downPageable.getPageNumber(), downPageable.getPageSize(), + downTotalPage, downTotalCount)); } // �뀒�씠釉� �꽕�젙 �뀑�똿 @@ -1528,8 +1547,13 @@ // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setDownIssues(Issue issue, IssueVo issueVo) { - List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); - if(downIssues != null && downIssues.size()>0){ + //List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); + int startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize()); + Pageable pageable = PageRequest.of(startPage, issueVo.getDownPageSize()); + Page<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable); + issueVo.setDownTotalPage(downIssues.getTotalPages()); + issueVo.setDownTotalCount(downIssues.getTotalElements()); + if(downIssues != null){ List<IssueVo> resultList = new ArrayList<>(); for(Issue downIssue : downIssues){ IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); @@ -1629,13 +1653,18 @@ // �뿰愿� �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setRelationIssue(Issue issue, IssueVo issueVo) { - Set<IssueRelation> issueRelations = issue.getIssueRelations(); - if (issue != null && issueVo != null && issueRelations.size() > 0) { - for (IssueRelation issueRelation : issueRelations) { - IssueRelationVo issueRelationVo = ConvertUtil.copyProperties(issueRelation, IssueRelationVo.class); + //Set<IssueRelation> issueRelations = issue.getIssueRelations(); + List<Map<String, Object>> results = this.issueRelationMapper.findByIssueId(issueVo); + Long totalCount = this.issueRelationMapper.count(issueVo); - Issue relationIssue = issueRelation.getRelationIssue(); + int totalPage = (int) Math.ceil((totalCount - 1) / issueVo.getRelPageSize()) + 1; + issueVo.setRelTotalPage(totalPage); + issueVo.setRelTotalCount(totalCount); + if (issue != null && issueVo != null && results.size() > 0) { + for (Map<String, Object> result : results) { + IssueRelationVo issueRelationVo = ConvertUtil.convertMapToClass(result, IssueRelationVo.class); + Issue relationIssue = this.findOne(issueRelationVo.getId()); IssueVo relIssueVo = ConvertUtil.copyProperties(relationIssue, IssueVo.class); Project project = this.projectService.getProject(relationIssue.getProject().getId()); relIssueVo.setProjectId(project.getId()); -- Gitblit v1.8.0