From da08346c769258b6102cb4fe5348dc164ea2f3f7 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 일, 12 12월 2021 17:40:31 +0900
Subject: [PATCH] - 연관 이슈 추가 안되는 오류 수정 - 연관 이슈 추가 후 목록 안뜨는 문제 수정 - 이슈 목록 트리 구조 보기 기능 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   76 +++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 33 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 d3c4f10..7f68b4e 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1,7 +1,6 @@
 package kr.wisestone.owl.service.impl;
 
 import com.google.common.collect.Lists;
-import com.sun.org.apache.bcel.internal.generic.NEW;
 import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.common.IssueCustomFieldValueFormComparator;
 import kr.wisestone.owl.config.CommonConfiguration;
@@ -211,23 +210,16 @@
 
         Workflow workflow = issueType.getWorkflow();
 
-        // �씠�뒋 �긽�깭媛� 吏��젙�릺�뼱 �엳吏� �븡�쓣 寃쎌슦 珥덇린媛믪쑝濡� 吏��젙
-        if (issueApiForm.getIssueStatusId() == null) {
-            List<IssueStatusVo> issueStatusVos = issueStatusService.findByWorkflowId(workflow.getId());
-            IssueStatusVo issueStatusVo = issueStatusVos.get(0);
-            issueApiForm.setIssueStatusId(issueStatusVo.getId());
-        }
-
-        // �썙�겕�뵆濡쒖슦 �긽�깭�뿉 �뵲瑜� �떞�떦遺��꽌 媛��졇�삤湲�
-        if (issueApiForm.getIssueStatusId() != null) {
-            WorkflowDepartmentCondition workflowDepartmentCondition = new WorkflowDepartmentCondition();
-            workflowDepartmentCondition.setIssueStatusId(issueApiForm.getIssueStatusId());
-            workflowDepartmentCondition.setWorkflowId(workflow.getId());
-            List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(workflowDepartmentCondition);
-
-            for (WorkflowDepartmentVo workflowDepartmentVo : workflowDepartmentVos) {
-                issueForm.addDepartmentId(workflowDepartmentVo.getDepartmentVo().getId());
+        if (issueApiForm.getApiType().equals(IssueApiForm.ApiType.add)) {
+            // �씠�뒋 �긽�깭媛� 吏��젙�릺�뼱 �엳吏� �븡�쓣 寃쎌슦 �썙�겕�뵆濡쒖슦 ��湲� �긽�깭 媛믪쑝濡� 吏��젙
+            List<Long> departmentIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow);
+            if (departmentIds != null && departmentIds.size() > 0) {
+                for (Long departmentId : departmentIds) {
+                    issueForm.addDepartmentId(departmentId);
+                }
             }
+        } else if (issueApiForm.getIssueStatusId() == null){
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_EXIST));
         }
 
         // �봽濡쒖젥�듃 �엯�젰
@@ -788,11 +780,11 @@
         //  Map �뿉 �엳�뒗 �뜲�씠�꽣瑜� IssueVo �뜲�씠�꽣濡� 蹂��솚�븳�떎.
         this.setMapToIssueVo(results, issueVos, issueCondition, user);
 
-//        if (issueCondition.getTree()) {
-            this.setDownIssues(issueVos);
+        if (issueCondition.getTree()) {
+            this.setDownIssues(user, issueVos);
             this.setRelationIssues(issueVos);
-//        }
-        this.setCountDownIssues(results, issueVos);
+        }
+        this.setCountDownIssues(issueVos);
 
         this.SetWorkflowDepartment(issueVos); //�썙�겕�뵆濡쒖슦�뿉 �꽕�젙�븳 �떞�떦遺��꽌 媛��졇�삤湲�
 
@@ -806,13 +798,35 @@
     }
 
 
-    // �븯�쐞 �씠�뒋 �꽭�똿
-    private void setDownIssues(List<IssueVo> issueVos) {
+    // �븯�쐞 �씠�뒋 �꽭�똿(�옱洹�)
+    private void setDownIssues(User user, List<IssueVo> issueVos) {
         for(IssueVo issueVo : issueVos) {
             List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueVo.getId());
+            List<IssueVo> downIssueVos = Lists.newArrayList();
+            IssueCondition issueCondition = new IssueCondition();
+            issueCondition.addIssueIds(String.valueOf(issueVo.getId()));
+
             for(Issue downIssue : downIssues){
-                issueVo.addIssueDownVo(ConvertUtil.copyProperties(downIssue, IssueVo.class));
+                IssueVo addIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class);
+                addIssueVo.setIssueTypeId(downIssue.getIssueType().getId());
+                downIssueVos.add(addIssueVo);
+
             }
+            issueVo.setIssueDownVos(downIssueVos);
+            if (downIssueVos.size() > 0) {
+                this.setDownIssues(user, downIssueVos);
+            }
+
+            //  �씠�뒋 �궗�슜�옄 �젙蹂� 異붽�
+            //this.setIssueUserList(issueVos, issueCondition);
+            this.setIssueDepartmentList(issueVos, issueCondition, user);
+            //  �벑濡앹옄 �젙蹂� 異붽�
+            this.setRegister(issueVos);  //  �떞�떦�옄 �젙蹂� �뀑�똿
+
+            //  �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂� 異붽�
+            this.setIssueCustomFieldValue(issueVos, issueCondition);
+
+            this.SetWorkflowDepartment(issueVos); //�썙�겕�뵆濡쒖슦�뿉 �꽕�젙�븳 �떞�떦遺��꽌 媛��졇�삤湲�
         }
     }
 
@@ -828,9 +842,9 @@
 
     @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")); //�븯�쐞�씠�뒋 媛��졇�삤湲�
+    public void setCountDownIssues(List<IssueVo> issueVos) {
+        for (IssueVo issueVo : issueVos){
+            List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueVo.getId()); //�븯�쐞�씠�뒋 媛��졇�삤湲�
             if(downIssues != null && downIssues.size() > 0){ //�긽�쐞�씠�뒋 媛�吏�怨� �엳�뒗 �븷�뱾�씠 �엳�쑝硫�
                 int downIssueAllCount = 0;// �븯�쐞�씠�뒋 �쟾泥� 移댁슫�듃
                 int downIssueCount = 0;// �븯�쐞�씠�뒋 誘몄셿猷� 移댁슫�듃
@@ -849,12 +863,8 @@
                         downIssueCount ++;
                     }
 
-                    for(IssueVo issueVo : issueVos){
-                        if(issueVo.getId().equals(parentIssueVo.getId())){
-                            issueVo.setDownIssueCount(downIssueCount);
-                            issueVo.setDownIssueAllCount(parentIssueVo.getDownIssueAllCount());
-                        }
-                    }
+                    issueVo.setDownIssueCount(downIssueCount);
+                    issueVo.setDownIssueAllCount(parentIssueVo.getDownIssueAllCount());
                 }
             }
         }

--
Gitblit v1.8.0