From 1dad4d94cc415d2f8092aff0368744289337f504 Mon Sep 17 00:00:00 2001
From: 박지현 <jhpark@maprex.co.kr>
Date: 화, 22 2월 2022 14:29:43 +0900
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index b6df835..e3adfbe 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -51,7 +51,13 @@
     private WorkflowService workflowService;
 
     @Autowired
+    private WorkflowDepartmentService workflowDepartmentService;
+
+    @Autowired
     private ProjectService projectService;
+
+    @Autowired
+    private ProjectRoleService projectRoleService;
 
     @Autowired
     private WorkspaceService workspaceService;
@@ -92,16 +98,16 @@
 
             switch (projectType) {
                 case BTS_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99", 0L)); // 踰꾧렇
-                    issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe", 0L)); // 媛쒖꽑
+                    issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99", 0L, true)); // 踰꾧렇
+                    issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe", 0L, true)); // 媛쒖꽑
                     break;
 
                 case RMS_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2", 0L)); // �슂援� �궗�빆
+                    issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2", 0L, true)); // �슂援� �궗�빆
                     break;
 
                 case TCM_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7", 0L)); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵
+                    issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7", 0L, true)); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵
                     break;
             }
             this.issueTypeRepository.saveAll(issueTypes);
@@ -144,9 +150,33 @@
         Project project = this.projectService.getProject(issueTypeForm.getProjectId());
         issueType.setProject(project);
 
+        //  �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+        this.setDepartmentOfProject(project, workflow);
+
         issueType.setUsePartner(issueTypeForm.getUsePartner());
 
+        issueType.setInheritPartners(issueTypeForm.getInheritPartners());
+
         return this.issueTypeRepository.saveAndFlush(issueType);
+    }
+
+    /**
+     * �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+     * @param project Project
+     * @param workflow Workflow
+     */
+    private void setDepartmentOfProject(Project project, Workflow workflow) {
+        List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentService.find(workflow.getId());
+
+        //  �빐�떦 �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌媛� 議댁옱 �븷 寃쎌슦 �빐�떦 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉�룄 異붽�
+        if (workflowDepartments != null && workflowDepartments.size() > 0) {
+            ProjectRole projectRole = this.projectRoleService.findByProjectIdAndRoleType(project.getId(), ProjectRole.TYPE_DEFAULT);
+
+            for (WorkflowDepartment workflowDepartment : workflowDepartments) {
+                //  �봽濡쒖젥�듃 �떞�떦遺��꽌濡� 異붽�
+                projectRole.addDepartment(workflowDepartment.getDepartment());
+            }
+        }
     }
 
     //  �씠由� �쑀�슚�꽦 泥댄겕
@@ -402,7 +432,12 @@
         Project project = this.projectService.getProject(issueTypeForm.getProjectId());
         issueType.setProject(project);
 
+        //  �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�� �룞�씪�븯寃� �꽭�똿
+        this.setDepartmentOfProject(project, workflow);
+
         issueType.setUsePartner(issueTypeForm.getUsePartner());
+
+        issueType.setInheritPartners(issueTypeForm.getInheritPartners());
 
         /*if(issueTypeForm.getCompanyId() != null){
             CompanyField companyField = this.companyFieldService.getCompany(issueTypeForm.getCompanyId());
@@ -485,6 +520,13 @@
         return this.issueTypeRepository.findByWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
     }
 
+    //  �썙�겕�뵆濡쒖슦 ID濡� �씠�뒋 �쑀�삎 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public List<IssueType> findByWorkflowId(Long id) {
+        return this.issueTypeRepository.findByWorkflowId(id);
+    }
+
     //  �씠�뒋 ���엯 �븘�뱶 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     @Override
     @Transactional

--
Gitblit v1.8.0