From 6f466b7a9a83d4547966ef0ac44bc1c5e6dbcfcf Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 일, 05 12월 2021 13:59:53 +0900
Subject: [PATCH] 이슈상세페이지 - 하위이슈 리스트 안나오는 문제 해결

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   26 ++++++--
 src/main/java/kr/wisestone/owl/vo/IssueVo.java                    |   17 +++++
 src/main/java/kr/wisestone/owl/vo/IssueDownVo.java                |   93 +++++++++++++++++++++++++++++++
 src/main/webapp/scripts/app/issue/issueDetail.controller.js       |    3 
 4 files changed, 132 insertions(+), 7 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 f3aeac1..6c786e3 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1021,9 +1021,25 @@
     // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎
     private void setDownIssues(Issue issue, IssueVo issueVo) {
         List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId());
+        /*if(issueVo != null && downIssues.size()>0){
+            for(Issue downIssue : downIssues){
+                IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class);
+                IssueDownVo issueDownVo = ConvertUtil.copyProperties(downIssueVo, IssueDownVo.class);
+                issueDownVo.setIssueDown(downIssueVo);
+                issueDownVo.setTitle(downIssue.getTitle());
+                issueDownVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class));
+                issueDownVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class));
+                issueDownVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class));
+                this.setRegister(downIssue, downIssueVo); // �벑濡앹옄
+                this.setIssueDepartment(downIssue, downIssueVo);  //  �떞�떦遺��꽌 �젙蹂� �뀑�똿
+                this.setIssueCustomFields(downIssue, downIssueVo);   // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿
+                issueVo.addIssueDownVo(issueDownVo);
+            }
+        }*/
+
         List<IssueVo> downIssueVos = ConvertUtil.convertObjectsToClasses(downIssues, IssueVo.class);
         List<IssueVo> resultList = new ArrayList<>();
-        if(downIssues != null && downIssueVos.size()>0){
+        if(downIssueVos != null && downIssueVos.size()>0){
             for(IssueVo downIssueVo : downIssueVos){
                 for(Issue downIssue : downIssues){
                     downIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class));
@@ -1035,9 +1051,7 @@
                 }
                 resultList.add(downIssueVo);
             }
-            issueVo.setIssueDownVos(resultList); //�봽濡좏듃�뿉�꽌 List�삎�깭濡� 諛쏆븘以섏꽌 由ъ뒪�듃 �삎�떇�쑝濡� 蹂대궡以�
-        }else{
-            issueVo.setIssueDownVos(null);
+            issueVo.setIssueDownVos(resultList);
         }
     }
 
@@ -2942,7 +2956,7 @@
         StringBuilder sb = new StringBuilder();
 
         Issue parentIssue = issue.getParentIssue(); //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋
-        if(parentIssue != null){ //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋媛� 議댁옱 �븷 寃쎌슦
+        if(parentIssue != null && parentIssue.getId().equals(newParentIssueId)){ //蹂�寃� �쟾 �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋媛� 議댁옱 �븷 寃쎌슦
             this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb);
             this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString());
         }
@@ -2951,7 +2965,7 @@
             parentIssue = this.getIssue(newParentIssueId); //�긽�쐞�씠�뒋(myIssue)
             issue.setParentIssue(parentIssue); //myIssue瑜� �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋濡� set
             this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = �븯�쐞�씠�뒋
-        } else  {
+        } else{
             // �궘�젣 �븷 寃쎌슦
             this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb);
             issue.setParentIssue(null);
diff --git a/src/main/java/kr/wisestone/owl/vo/IssueDownVo.java b/src/main/java/kr/wisestone/owl/vo/IssueDownVo.java
new file mode 100644
index 0000000..68de22d
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/vo/IssueDownVo.java
@@ -0,0 +1,93 @@
+package kr.wisestone.owl.vo;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+public class IssueDownVo extends BaseVo {
+    private Long id;
+    private IssueVo issue;
+    private IssueVo issueDown;
+    private String title;
+
+    private IssueTypeVo issueTypeVo;    //  �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜
+    private PriorityVo priorityVo;  //  �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜
+    private SeverityVo severityVo;  //  �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜
+    private UserVo registerVo;  //  �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜
+    private List<DepartmentVo> departmentVos = Lists.newArrayList(); //�떞�떦遺��꽌
+    private Boolean modifyPermissionCheck = Boolean.FALSE;
+
+    public IssueDownVo() {}
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public IssueVo getIssue() { return issue; }
+
+    public void setIssue(IssueVo issue) { this.issue = issue; }
+
+    public IssueVo getIssueDown() {
+        return issueDown;
+    }
+
+    public void setIssueDown(IssueVo issueDown) {
+        this.issueDown = issueDown;
+    }
+
+    public String getTitle() { return  this.title; }
+
+    public void setTitle(String title) { this.title = title; }
+
+    public IssueTypeVo getIssueTypeVo() {
+        return issueTypeVo;
+    }
+
+    public void setIssueTypeVo(IssueTypeVo issueTypeVo) {
+        this.issueTypeVo = issueTypeVo;
+    }
+
+    public PriorityVo getPriorityVo() {
+        return priorityVo;
+    }
+
+    public void setPriorityVo(PriorityVo priorityVo) {
+        this.priorityVo = priorityVo;
+    }
+
+    public SeverityVo getSeverityVo() {
+        return severityVo;
+    }
+
+    public void setSeverityVo(SeverityVo severityVo) {
+        this.severityVo = severityVo;
+    }
+
+    public UserVo getRegisterVo() {
+        return registerVo;
+    }
+
+    public void setRegisterVo(UserVo registerVo) {
+        this.registerVo = registerVo;
+    }
+
+    public List<DepartmentVo> getDepartmentVos() {
+        return departmentVos;
+    }
+
+    public void setDepartmentVos(List<DepartmentVo> departmentVos) {
+        this.departmentVos = departmentVos;
+    }
+
+    public Boolean getModifyPermissionCheck() {
+        return modifyPermissionCheck;
+    }
+
+    public void setModifyPermissionCheck(Boolean modifyPermissionCheck) {
+        this.modifyPermissionCheck = modifyPermissionCheck;
+    }
+}
diff --git a/src/main/java/kr/wisestone/owl/vo/IssueVo.java b/src/main/java/kr/wisestone/owl/vo/IssueVo.java
index 7d84a23..83daa76 100644
--- a/src/main/java/kr/wisestone/owl/vo/IssueVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -45,6 +45,7 @@
     private List<IssueTypeCustomFieldVo> issueTypeCustomFieldVos = Lists.newArrayList();
     private List<IssueCustomFieldValueVo> issueCustomFieldValueVos = Lists.newArrayList();
     private List<IssueRelationVo> issueRelations = Lists.newArrayList();
+    //private List<IssueDownVo> issueDownVos = Lists.newArrayList();
     private List<IssueVo> issueDownVos = Lists.newArrayList();
     private List<IssueVo> issueRelationVos = Lists.newArrayList();
     private Long attachedFileCount;
@@ -402,6 +403,14 @@
         this.issueRelations.add(issueRelationVo);
     }
 
+    /*public void addIssueDownVo(IssueDownVo issueDownVo) {
+        if (this.issueDownVos == null){
+            this.issueDownVos = new ArrayList<>();
+        }
+
+        this.issueDownVos.add(issueDownVo);
+    }*/
+
     public  List<IssueVo> getIssueRelationIssueVos() { return  this.issueRelationVos; }
 
     public void setIssueRelationIssueVos(List<IssueVo> issueRelationVos) { this.issueRelationVos = issueRelationVos; }
@@ -414,6 +423,14 @@
         this.departmentVos = departmentVos;
     }
 
+    /*public List<IssueDownVo> getIssueDownVos() {
+        return issueDownVos;
+    }
+
+    public void setIssueDownVos(List<IssueDownVo> issueDownVos) {
+        this.issueDownVos = issueDownVos;
+    }*/
+
     public List<IssueVo> getIssueDownVos() {
         return issueDownVos;
     }
diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index deb92af..61dbd50 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -870,7 +870,8 @@
                                 // �븯�쐞 �씠�뒋 諛섎ぉ臾�
                                 if (result.data.data.issueDownVos !== null){
                                     angular.forEach(result.data.data.issueDownVos, function (issueDownVo){
-                                        $scope.vm.form.issuesDown.push(issueDownVo.issue);
+                                        //$scope.vm.form.issuesDown.push(issueDownVo.issueDown);
+                                        $scope.vm.form.issuesDown.push(issueDownVo);
                                     });
                                 }
                                 $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;

--
Gitblit v1.8.0