From 385f0d9070b90d2253ddaeaf1b2e2491ebaeda95 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 토, 11 12월 2021 21:34: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              |   25 ++++--------
 src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java         |   33 ++++++++++------
 src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java |   25 ++++++++++++
 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java               |    2 +
 src/main/java/kr/wisestone/owl/service/DepartmentService.java                  |    2 +
 src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java          |   11 +----
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                      |    1 
 7 files changed, 62 insertions(+), 37 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 71343b2..a92312f 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -245,4 +245,5 @@
     public static final String API_OVERLAP_SETTING_NOT_EXIST = "API_OVERLAP_SETTING_NOT_EXIST";     // API 以묐났�맂 �꽕�젙�씠 �븞�릺�뼱 �엳�쓣 寃쎌슦
     public static final String API_ISSUE_NOT_EXIST = "API_ISSUE_NOT_EXIST";     // �닔�젙�븷 �씠�뒋瑜� 李얠쓣�닔 �뾾�뒿�땲�떎.
     public static final String API_COMPLETE_ISSUE_STATUS_NOT_EXIST = "API_COMPLETE_ISSUE_STATUS_NOT_EXIST";     // �옄�룞 醫낅즺 泥섎━�븷 �긽�깭媛� �꽕�젙�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String API_ISSUE_STATUS_NOT_EXIST = "API_ISSUE_STATUS_NOT_EXIST";     // �씠�뒋 �긽�깭瑜� 李얠쓣�닔 �뾾�뒿�땲�떎
 }
diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentService.java b/src/main/java/kr/wisestone/owl/service/DepartmentService.java
index 4386624..556d653 100644
--- a/src/main/java/kr/wisestone/owl/service/DepartmentService.java
+++ b/src/main/java/kr/wisestone/owl/service/DepartmentService.java
@@ -39,5 +39,7 @@
 
     void findWorkflowDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition);
 
+    List<DepartmentVo> findWorkflowDepartment(Long issueTypeId);
+
     List<Map<String, Object>> findProjectDepartment(Project project);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java b/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java
index 30b0fcd..c6a30c6 100644
--- a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java
+++ b/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java
@@ -1,17 +1,10 @@
 package kr.wisestone.owl.service;
 
-import kr.wisestone.owl.domain.IssueStatus;
-import kr.wisestone.owl.domain.Workflow;
-import kr.wisestone.owl.domain.WorkflowDepartment;
-import kr.wisestone.owl.domain.WorkflowTransition;
-import kr.wisestone.owl.domain.enumType.ProjectType;
-import kr.wisestone.owl.util.MapUtil;
+import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.vo.IssueStatusVo;
 import kr.wisestone.owl.vo.WorkflowDepartmentVo;
-import kr.wisestone.owl.vo.WorkflowTransitionVo;
 import kr.wisestone.owl.web.condition.WorkflowDepartmentCondition;
 import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.HashMap;
 import java.util.List;
@@ -22,6 +15,8 @@
     WorkflowDepartment getWorkflowDepartment(Long id);
     List<WorkflowDepartmentVo> find(WorkflowDepartmentCondition condition);
     List<WorkflowDepartmentVo> find(Long workflowId, Long issueStatusId);
+    List<WorkflowDepartment> find(Long workflowId);
+    List<Long> findFirstDepartmentIds(Workflow workflow);
     void modify(Workflow workflow, List<IssueStatusVo> issueStatusVos);
     void remove(Long workflowId);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
index 344147e..6c22513 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
@@ -2,13 +2,10 @@
 
 import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.mapper.DepartmentMapper;
-import kr.wisestone.owl.repository.WorkflowDepartmentRepository;
 import kr.wisestone.owl.service.*;
-import kr.wisestone.owl.util.CommonUtil;
 import kr.wisestone.owl.web.condition.DepartmentCondition;
 import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.form.DepartmentForm;
-import kr.wisestone.owl.web.form.UserDepartmentForm;
 import org.jsoup.Jsoup;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,16 +46,13 @@
     private DepartmentService departmentService;
 
     @Autowired
-    private UserDepartmentService userDepartmentService;
+    private WorkflowDepartmentService workflowDepartmentService;
 
     @Autowired
     private ProjectRoleDepartmentService projectRoleDepartmentService;
 
     @Autowired
     private ProjectRoleService projectRoleService;
-
-    @Autowired
-    private WorkflowDepartmentRepository workflowDepartmentRepository;
 
     @Autowired
     private IssueTypeService issueTypeService;
@@ -167,24 +161,37 @@
     @Override
     @Transactional(readOnly = true)
     public void findWorkflowDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition) {
+        List<DepartmentVo> departmentVos = findWorkflowDepartment(departmentCondition.getIssueTypeId());
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
+    }
 
-        IssueType issueType = this.issueTypeService.getIssueType(departmentCondition.getIssueTypeId());
-        Long workflowId = issueType.getWorkflow().getId();
-        List<WorkflowDepartment> workflowDepartmentList = this.workflowDepartmentRepository.findByWorkflowId(workflowId);
+    //  �썙�겕�뵆濡쒖슦�뿉 �냽�빐�엳�뒗 遺��꽌 紐⑸줉 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public List<DepartmentVo> findWorkflowDepartment(Long issueTypeId) {
+        List<WorkflowDepartment> workflowDepartmentList = this.findWorkflowDepartmentByIssueTypeId(issueTypeId);
         List<DepartmentVo> departmentVos = Lists.newArrayList();
 
-        //List<Long> workflowDepartmentIds = Lists.newArrayList();
         if(workflowDepartmentList != null && workflowDepartmentList.size()>0){
             for(WorkflowDepartment workflowDepartment : workflowDepartmentList){
                 DepartmentVo departmentVo = ConvertUtil.copyProperties(workflowDepartment.getDepartment(), DepartmentVo.class);
                 departmentVo.setByName(departmentVo.getDepartmentName());
-                //workflowDepartmentIds.add(workflowDepartment.getDepartment().getId());
                 departmentVos.add(departmentVo);
             }
-            resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
         }
+        return departmentVos;
     }
 
+    // �씠�뒋 �쑀�삎(�썙�겕�뵆濡쒖슦)�뿉 �엳�뒗 �떞�떦遺��꽌 議고쉶
+    private List<WorkflowDepartment> findWorkflowDepartmentByIssueTypeId(Long issueTypeId) {
+        Long workflowId = this.getWorkflowId(issueTypeId);
+        return this.workflowDepartmentService.find(workflowId);
+    }
+
+    private Long getWorkflowId(Long issueTypeId) {
+        IssueType issueType = this.issueTypeService.getIssueType(issueTypeId);
+        return issueType.getWorkflow().getId();
+    }
 
     // 遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     @Override
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..142f491 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -211,23 +211,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));
         }
 
         // �봽濡쒖젥�듃 �엯�젰
diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
index 064df76..e820d25 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
@@ -74,6 +74,31 @@
         return find(condition);
     }
 
+    public List<WorkflowDepartment> find(Long workflowId) {
+        return this.workflowDepartmentRepository.findByWorkflowId(workflowId);
+    }
+
+
+    @Override
+    // �썙�겕�뵆濡쒖슦�쓽 �빐�떦 �씠�뒋�긽�깭瑜� 媛�吏� �썙�겕�뵆濡쒖슦 遺��꽌 媛��졇�삤湲�(Ready)
+    public List<Long> findFirstDepartmentIds(Workflow workflow) {
+        List<Long> departmentIds = Lists.newArrayList();
+        IssueStatus issueStatus = issueStatusService.findByIssueStatusTypeIsReady(workflow);
+
+        // �썙�겕�뵆濡쒖슦 �긽�깭�뿉 �뵲瑜� �떞�떦遺��꽌 媛��졇�삤湲�
+        if (issueStatus != null) {
+            WorkflowDepartmentCondition workflowDepartmentCondition = new WorkflowDepartmentCondition();
+            workflowDepartmentCondition.setIssueStatusId(issueStatus.getId());
+            workflowDepartmentCondition.setWorkflowId(workflow.getId());
+            List<WorkflowDepartmentVo> workflowDepartmentVos = this.find(workflowDepartmentCondition);
+
+            for (WorkflowDepartmentVo workflowDepartmentVo : workflowDepartmentVos) {
+                departmentIds.add(workflowDepartmentVo.getDepartmentVo().getId());
+            }
+        }
+        return departmentIds;
+    }
+
     // �떞�떦 遺��꽌�젙蹂대�� 議고쉶�븳�떎.
     @Transactional(readOnly = true)
     @Override
diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
index c67133a..fcddc53 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -187,6 +187,8 @@
 
         if (MapUtil.getBoolean(conditions, "isTree") != null) {
             condition.setTree(MapUtil.getBoolean(conditions, "isTree"));
+        } else {
+            condition.setTree(false);
         }
 
         return condition;

--
Gitblit v1.8.0