삭제 후엔 부서 선택 해제

This commit is contained in:
dohyeons
2025-11-03 17:42:46 +09:00
parent 6b53cb414c
commit c50c8d01df
3 changed files with 137 additions and 59 deletions

View File

@@ -250,25 +250,19 @@ export async function deleteDepartment(req: AuthenticatedRequest, res: Response)
if (parseInt(hasChildren?.count || "0") > 0) {
res.status(400).json({
success: false,
message: "하위 부서가 있는 부서는 삭제할 수 없습니다.",
message: "하위 부서가 있는 부서는 삭제할 수 없습니다. 먼저 하위 부서를 삭제해주세요.",
});
return;
}
// 부서원 확인
const hasMembers = await queryOne<any>(`
SELECT COUNT(*) as count
FROM user_dept
// 부서원 삭제 (부서 삭제 전에 먼저 삭제)
const deletedMembers = await query<any>(`
DELETE FROM user_dept
WHERE dept_code = $1
RETURNING user_id
`, [deptCode]);
if (parseInt(hasMembers?.count || "0") > 0) {
res.status(400).json({
success: false,
message: "부서원이 있는 부서는 삭제할 수 없습니다.",
});
return;
}
const memberCount = deletedMembers.length;
// 부서 삭제
const result = await query<any>(`
@@ -285,11 +279,17 @@ export async function deleteDepartment(req: AuthenticatedRequest, res: Response)
return;
}
logger.info("부서 삭제 성공", { deptCode });
logger.info("부서 삭제 성공", {
deptCode,
deptName: result[0].dept_name,
deletedMemberCount: memberCount
});
res.status(200).json({
success: true,
message: "부서가 삭제되었습니다.",
message: memberCount > 0
? `부서가 삭제되었습니다. (부서원 ${memberCount}명 제외됨)`
: "부서가 삭제되었습니다.",
});
} catch (error) {
logger.error("부서 삭제 실패", error);