From 916a3cbabe4e50062fce61ff6f2f5d46c05dfbd1 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 17 3월 2022 17:47:45 +0900
Subject: [PATCH] - api로 이슈 추가 시 url/ip로 업체 찾는 코드 수정

---
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
index ef07f67..aaef9a8 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -60,6 +60,9 @@
     private WorkflowStatusService workflowStatusService;
 
     @Autowired
+    private WorkflowDepartmentService workflowDepartmentService;
+
+    @Autowired
     private WorkspaceService workspaceService;
 
     @Autowired
@@ -819,8 +822,11 @@
         }
         projectRole.getProjectRoleDepartments().clear();
 
+        this.checkDepartmentOfWorkflow(project, projectForm.getDepartmentIds());
+
         for (Long departmentId : projectForm.getDepartmentIds()) {
             Department department = this.departmentService.getDepartment(departmentId);
+
             department.addProjectRole(projectRole);
         }
 
@@ -836,6 +842,33 @@
 
     }
 
+    /**
+     * �봽濡쒖젥�듃�� �뿰寃곕맂 �씠�뒋�쑀�삎�쓽 �썙�겕�뵆濡쒖슦�뿉�꽌 �꽕�젙�븳 遺��꽌�뒗 �봽濡쒖젥�듃 �떞�떦遺��꽌�뿉�꽌 �젣�쇅 遺덇�
+     * @param project Project
+     * @param departmentIds List<Long>
+     */
+    private void checkDepartmentOfWorkflow(Project project, List<Long> departmentIds) {
+        List<IssueType> issueTypes = this.issueTypeService.findByProjectId(project.getId());
+
+        List<Long> workflowDepartmentIds = Lists.newArrayList();
+
+        if (issueTypes != null && issueTypes.size() > 0) {
+            for (IssueType issueType : issueTypes) {
+                List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentService.find(issueType.getWorkflow().getId());
+                if (workflowDepartments != null && workflowDepartments.size() > 0) {
+                    for (WorkflowDepartment workflowDepartment : workflowDepartments) {
+                        workflowDepartmentIds.add(workflowDepartment.getDepartment().getId());
+
+                        if (!departmentIds.containsAll(workflowDepartmentIds)) {
+                            throw new OwlRuntimeException(
+                                    this.messageAccessor.getMessage(MsgConstants.PROJECT_DEPARTMENT_NOT_EQUAL_WORKFLOW));
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     //  �봽濡쒖젥�듃 李몄뿬, �젣�쇅 �넻吏� �젙蹂대�� 以묐났�쑝濡� �굹媛�吏� �븡�룄濡� 泥댄겕�븳�떎.
     private void notificationProjectRoleUser(Map<String, Object> changeProjectManagerNotifications, Map<String, Object> changeProjectUserNotifications, Project project) {
         List<String> projectManagerExcludeUsers = (List<String>) changeProjectManagerNotifications.get("excludeUsers");  //  愿�由ъ옄 �젣�쇅 �궗�슜�옄

--
Gitblit v1.8.0