
--- src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
+++ src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
... | ... | @@ -130,6 +130,14 @@ |
130 | 130 |
|
131 | 131 |
/** |
132 | 132 |
* @param deptId - 부서 ID |
133 |
+ * @return int - 부서의 사용자 수 |
|
134 |
+ * |
|
135 |
+ * 상위, 하위 부서의 사용자 수 조회 |
|
136 |
+ */ |
|
137 |
+ int countDeptInDeptMbr(String deptId); |
|
138 |
+ |
|
139 |
+ /** |
|
140 |
+ * @param deptId - 부서 ID |
|
133 | 141 |
* @return int - 삭제 성공 여부 |
134 | 142 |
* |
135 | 143 |
* 상위, 하위 부서 삭제에 따른 부서의 사용자 삭제 |
--- src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
+++ src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
... | ... | @@ -287,10 +287,14 @@ |
287 | 287 |
throw new CustomDeleteFailException("부서 삭제 실패"); |
288 | 288 |
} |
289 | 289 |
|
290 |
- int deleteDeptAuth = 0; // 부서 권한 삭제 결과 |
|
291 |
- deleteDeptAuth = deptDAO.deleteDeptInDeptMbr(deptVO.getDeptId()); |
|
292 |
- if (deleteDeptAuth == 0) { |
|
293 |
- throw new CustomDeleteFailException("부서 권한 삭제 실패"); |
|
290 |
+ int deptMberCnt = deptDAO.countDeptInDeptMbr(deptVO.getDeptId()); // 부서에 등록된 사용자 수 조회 |
|
291 |
+ // 사용자가 있다면 부서 사용자 삭제 진행 |
|
292 |
+ if(deptMberCnt > 0) { |
|
293 |
+ int deleteDeptAuth = 0; // 부서 사용자 삭제 결과 |
|
294 |
+ deleteDeptAuth = deptDAO.deleteDeptInDeptMbr(deptVO.getDeptId()); |
|
295 |
+ if (deleteDeptAuth == 0) { |
|
296 |
+ throw new CustomDeleteFailException("부서 사용자 삭제 실패"); |
|
297 |
+ } |
|
294 | 298 |
} |
295 | 299 |
return delResult; |
296 | 300 |
} |
--- src/main/resources/mybatis/mapper/dept/dept-SQL.xml
+++ src/main/resources/mybatis/mapper/dept/dept-SQL.xml
... | ... | @@ -294,6 +294,22 @@ |
294 | 294 |
</update> |
295 | 295 |
|
296 | 296 |
<!-- |
297 |
+ 작성자 : 하석형 |
|
298 |
+ 작성일 : 2025.04.04 |
|
299 |
+ 내 용 : 상위, 하위 부서의 사용자 수 조회 |
|
300 |
+ --> |
|
301 |
+ <select id="countDeptInDeptMbr" parameterType="String" resultType="int"> |
|
302 |
+ WITH RECURSIVE DeptHierarchy AS ( |
|
303 |
+ SELECT dept_id, up_dept_id FROM dept_info WHERE dept_id = #{deptId} |
|
304 |
+ UNION ALL |
|
305 |
+ SELECT di.dept_id, di.up_dept_id |
|
306 |
+ FROM dept_info di |
|
307 |
+ JOIN DeptHierarchy dh ON di.up_dept_id = dh.dept_id |
|
308 |
+ ) |
|
309 |
+ SELECT COUNT(*) FROM dept_mbr_info WHERE dept_id IN (SELECT dept_id FROM DeptHierarchy) |
|
310 |
+ </select> |
|
311 |
+ |
|
312 |
+ <!-- |
|
297 | 313 |
작성자 : takensoft |
298 | 314 |
작성일 : 2024.04.26 |
299 | 315 |
내 용 : 상위, 하위 부서 삭제에 따른 부서의 사용자 삭제 |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?