| | |
| | | |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.mapper.DepartmentMapper; |
| | | import kr.wisestone.owl.repository.UserDepartmentRepository; |
| | | import kr.wisestone.owl.service.*; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.condition.UserCondition; |
| | |
| | | private DepartmentRepository departmentRepository; |
| | | |
| | | @Autowired |
| | | private UserDepartmentService userDepartmentService; |
| | | |
| | | @Autowired |
| | | private DepartmentMapper departmentMapper; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Autowired |
| | | private ProjectRoleDepartmentService projectRoleDepartmentService; |
| | | |
| | | @Autowired |
| | | private IssueDepartmentService issueDepartmentService; |
| | | |
| | | @Autowired |
| | | private ProjectRoleService projectRoleService; |
| | |
| | | } |
| | | |
| | | for (Long id : departmentForm.getRemoveIds()) { |
| | | if (!this.departmentService.countInDepartment(id)) { |
| | | this.departmentRepository.deleteById(id); |
| | | } else { |
| | | if (this.departmentService.countInDepartment(id)) { |
| | | // 사용자가 부서에 속해 있는지 체크 |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE)); |
| | | |
| | | } else if (this.workflowDepartmentService.usingDepartment(id)) { |
| | | // 워크플로우에서 해당 부서를 사용하고 있는지 체크 |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW)); |
| | | |
| | | } else if (this.projectRoleDepartmentService.usingDepartment(id)) { |
| | | // 프로젝트의 담당부서인지 체크 |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE_IN_PROJECT)); |
| | | |
| | | } else if (this.issueDepartmentService.usingDepartment(id)) { |
| | | // 이슈의 담당부서로 되어있는지 체크 |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE_IN_ISSUE)); |
| | | |
| | | } else { |
| | | this.departmentRepository.deleteById(id); |
| | | } |
| | | } |
| | | this.departmentRepository.flush(); |
| | |
| | | |
| | | @Override |
| | | public boolean countInDepartment(Long id) { |
| | | return this.departmentMapper.countInDepartment(id) > 0; |
| | | boolean result = false; |
| | | List<UserDepartment> usingDepartments = this.userDepartmentService.findByDepartmentId(id); |
| | | if(usingDepartments != null && usingDepartments.size() > 0){ |
| | | result = true; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | // DepartmentVos 데이터를 엑셀에서 표시할 수 있는 데이터로 변경한다. |