From 0b9b8875ca9b3c0cf4d0edb3b49eba6c7bff3b72 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 수, 16 2월 2022 17:54:03 +0900 Subject: [PATCH] - 부서 삭제 시 워크플로우, 프로젝트, 이슈의 담당부서에 속해 있으면 삭제 못하도록 수정 --- src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java | 2 + src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java | 26 +++++++++++- src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java | 15 +++++++ src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java | 2 + src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java | 15 +++++++ src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java | 2 + src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java | 2 + src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java | 15 +++++++ src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 3 + src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 3 + src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java | 2 + 11 files changed, 84 insertions(+), 3 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 66ac6a0..1960930 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/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"; // �궗�슜�옄�쓽 遺��꽌媛� 蹂�寃� �릺�뿀�뒿�땲�떎. �떎�떆 濡쒓렇�씤 �빐二쇱꽭�슂. diff --git a/src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java b/src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java index 5e38f1e..3c11a08 100644 --- a/src/main/java/kr/wisestone/owl/repository/ProjectRoleDepartmentRepository.java +++ b/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); } diff --git a/src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java b/src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java index 55f89cb..8c125c1 100644 --- a/src/main/java/kr/wisestone/owl/repository/WorkflowDepartmentRepository.java +++ b/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); } diff --git a/src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java b/src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java index 2425fe2..6fd4f5f 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueDepartmentService.java +++ b/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); } diff --git a/src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java b/src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java index 0d6e0c0..0c92606 100644 --- a/src/main/java/kr/wisestone/owl/service/ProjectRoleDepartmentService.java +++ b/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); } diff --git a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java b/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java index c6a30c6..775c75d 100644 --- a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java +++ b/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); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java index c7e7000..67d7586 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java +++ b/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(); diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java index 34d1557..d70d66b 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueDepartmentServiceImpl.java +++ b/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) { diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java index f98bae8..8b7a3d1 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleDepartmentServiceImpl.java +++ b/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; + } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java index 756b7c9..a85c2dd 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java +++ b/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; + } } diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index 2f2e8d1..6d547d5 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/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. -- Gitblit v1.8.0