| | |
| | | private WorkflowStatusService workflowStatusService; |
| | | |
| | | @Autowired |
| | | private WorkflowDepartmentService workflowDepartmentService; |
| | | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | @Autowired |
| | |
| | | project.setDescription(this.messageAccessor.message("common.intoTheSystemIssueManagementProject")); // 시스템에서 기본으로 제공되는 이슈 관리 프로젝트입니다. |
| | | //project.setStartDate(DateUtil.convertDateToYYYYMMDD(new Date())); |
| | | //project.setEndDate(DateUtil.convertDateToYYYYMMDD(DateUtil.addDays(new Date(), 3650))); |
| | | project.setStartDate("");//null표시 방지 |
| | | project.setEndDate(""); |
| | | // 기본으로 생성되는 프로젝트의 유형은 BTS |
| | | project.setProjectType(ProjectType.BTS_PROJECT); |
| | | project.setWorkspace(workspace); |
| | |
| | | totalPage, totalCount)); |
| | | |
| | | return projectVos; |
| | | } |
| | | |
| | | // 이슈유형에 속한 프로젝트 목록을 조회한다. |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public void findIssueType(Map<String, Object> resJsonData, ProjectCondition condition) { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, this.projectMapper.findByIssueType(condition)); |
| | | } |
| | | |
| | | void setChildrenProject(List<ProjectVo> projectVos, User user) { |
| | |
| | | } |
| | | 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"); // 관리자 제외 사용자 |