OWL ITS + 탐지시스템(인터넷 진흥원)
- 부서 삭제 시 워크플로우, 프로젝트, 이슈의 담당부서에 속해 있으면 삭제 못하도록 수정
11개 파일 변경됨
87 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/constant/MsgConstants.java 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java 26 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java 15 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java 15 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java 15 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -253,6 +253,9 @@
    public static final String DEPARTMENT_NOT_EXIST = "DEPARTMENT_NOT_EXIST";   // 부서가 존재하지 않습니다.
    public static final String DEPARTMENT_ALREADY_IN_USE = "DEPARTMENT_ALREADY_IN_USE";   // 선택한 부서는 이미 사용하고 있습니다.
    public static final String DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW = "DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW";   // 선택한 부서는 이미 워크플로우의 담당부서에 속해 있습니다.
    public static final String DEPARTMENT_ALREADY_IN_USE_IN_PROJECT = "DEPARTMENT_ALREADY_IN_USE_IN_PROJECT";   // 선택한 부서는 프로젝트의 담당부서에 속해 있습니다.
    public static final String DEPARTMENT_ALREADY_IN_USE_IN_ISSUE = "DEPARTMENT_ALREADY_IN_USE_IN_ISSUE";   // 선택한 부서는 이슈의 담당부서에 속해 있습니다.
    public static final String DEPARTMENT_REMOVE_NOT_SELECT = "DEPARTMENT_REMOVE_NOT_SELECT";   // 삭제할 부서가 선택되지 않았습니다.
    public static final String USER_DEPARTMENT_CHANGE = "USER_DEPARTMENT_CHANGE";   // 사용자의 부서가 변경 되었습니다. 다시 로그인 해주세요.
src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java
@@ -11,4 +11,6 @@
    List<ProjectRoleDepartment> findByProjectRoleId(@Param("projectRoleId") Long projectRoleId);
    ProjectRoleDepartment findByProjectRoleIdAndDepartmentId(@Param("projectRoleId") Long projectRoleId, @Param("departmentId") Long departmentId);
    List<ProjectRoleDepartment> findByDepartmentId(@Param("departmentId") Long departmentId);
}
src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java
@@ -9,4 +9,6 @@
public interface WorkflowDepartmentRepository extends JpaRepository<WorkflowDepartment, Long> {
    List<WorkflowDepartment> findByWorkflowIdAndIssueStatusId(@Param("workflowId") Long workflowId, @Param("issueStatusId") Long issueStatusId);
    List<WorkflowDepartment> findByWorkflowId(@Param("workflowId") Long workflowId);
    List<WorkflowDepartment> findByDepartmentId(@Param("departmentId") Long departmentId);
}
src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java
@@ -24,4 +24,6 @@
    List<IssueDepartment> find(Issue issue);
    List<IssueDepartment> findByDepartmentId(Long departmentId);
    boolean usingDepartment(Long departmentId);
}
src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java
@@ -12,4 +12,6 @@
    ProjectRoleDepartment findByProjectRoleIdAndDepartmentId(Long projectRoleId, Long departmentId); //담당부서
    List<Map<String, Object>> findProjectRoleDepartment(Map<String, Object> projectRoleDepartmentMap);
    boolean usingDepartment(Long departmentId);
}
src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java
@@ -19,4 +19,6 @@
    List<Long> findFirstDepartmentIds(Workflow workflow);
    void modify(Workflow workflow, List<IssueStatusVo> issueStatusVos);
    void remove(Long workflowId);
    boolean usingDepartment(Long id);
}
src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
@@ -56,6 +56,9 @@
    private ProjectRoleDepartmentService projectRoleDepartmentService;
    @Autowired
    private IssueDepartmentService issueDepartmentService;
    @Autowired
    private ProjectRoleService projectRoleService;
    @Autowired
@@ -125,11 +128,28 @@
        }
        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();
src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java
@@ -99,6 +99,21 @@
        return this.issueDepartmentRepository.findByDepartmentId(departmentId);
    }
    /**
     * 이슈의 담당부서에 속해있는지 조회
     * @param departmentId Long
     * @return useYn
     */
    @Override
    public boolean usingDepartment(Long departmentId) {
        boolean useYn = false;
        List<IssueDepartment> issueDepartments = this.issueDepartmentRepository.findByDepartmentId(departmentId);
        if (issueDepartments != null && issueDepartments.size() > 0) {
            useYn = true;
        }
        return useYn;
    }
    @Override
    @Transactional
    public void insertIssueDepartment(List<Map<String, Long>> issueAssigneeMaps) {
src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java
@@ -63,4 +63,19 @@
    public List<Map<String, Object>> findProjectRoleDepartment(Map<String, Object> projectRoleDepartmentMap) {
        return this.projectRoleDepartmentMapper.findProjectRoleDepartment(projectRoleDepartmentMap);
    }
    /**
     * 프로젝트의 담당부서에 속해있는지 조회
     * @param departmentId Long
     * @return useYn
     */
    @Override
    public boolean usingDepartment(Long departmentId) {
        boolean useYn = false;
        List<ProjectRoleDepartment> projectRoleDepartments = this.projectRoleDepartmentRepository.findByDepartmentId(departmentId);
        if (projectRoleDepartments != null && projectRoleDepartments.size() > 0) {
            useYn = true;
        }
        return useYn;
    }
}
src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
@@ -193,4 +193,19 @@
        this.workflowDepartmentMapper.deleteAll(condition);
    }
    /**
     * 특정 부서를 워크플로우에서 사용중인지 체크
     * @param id Long
     * @return useYn
     */
    @Override
    public boolean usingDepartment(Long id) {
        boolean useYn = false;
        List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentRepository.findByDepartmentId(id);
        if (workflowDepartments != null && workflowDepartments.size() > 0) {
            useYn = true;
        }
        return useYn;
    }
}
src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -235,6 +235,9 @@
DEPARTMENT_NOT_EXIST = \uBD80\uC11C\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
DEPARTMENT_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4.
DEPARTMENT_ALREADY_IN_USE_IN_PROJECT=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uD504\uB85C\uC81D\uD2B8\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4.
DEPARTMENT_ALREADY_IN_USE_IN_ISSUE=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uC288\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4.
DEPARTMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uBD80\uC11C\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
USER_DEPARTMENT_CHANGE = \uC0AC\uC6A9\uC790\uC758 \uB4F1\uAE09\uC774 \uBCC0\uACBD \uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uB85C\uADF8\uC778 \uD574\uC8FC\uC138\uC694.