| | |
| | | private WorkflowStatusService workflowStatusService; |
| | | |
| | | @Autowired |
| | | private WorkflowDepartmentService workflowDepartmentService; |
| | | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | @Autowired |
| | |
| | | } |
| | | projectRole.getProjectRoleDepartments().clear(); |
| | | |
| | | this.checkDepartmentOfWorkflow(project, projectForm.getDepartmentIds()); |
| | | |
| | | for (Long departmentId : projectForm.getDepartmentIds()) { |
| | | Department department = this.departmentService.getDepartment(departmentId); |
| | | |
| | | department.addProjectRole(projectRole); |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 프로젝트와 연결된 이슈유형의 워크플로우에서 설정한 부서는 프로젝트 담당부서에서 제외 불가 |
| | | * @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"); // 관리자 제외 사용자 |