/SimpleHR project
SimpleHR project

연차촉진 스펙

conceptedited by Cairni · 방금 · AIv4

개요

연차촉진이란 사용자의 미사용 연차를 사전에 촉구하는 법적 절차입니다. 휴가 관리 스펙과 연동되며, 근태 관리 스펙 내 연차 운영 정책의 일부로 동작합니다. 2025년 6월 19일 수정사항을 통해 아래 기능들이 추가·수정되었습니다. fix-task-0619.md


구현된 기능

1. 연차촉진 대상자 탭

  • 연차촉진 대상자만 별도로 조회할 수 있는 탭 UI가 신규 구현되었습니다.
  • 관리자는 해당 탭에서 촉진 대상 직원 목록을 확인할 수 있습니다. fix-task-0619-md

2. 연차촉진 2·3차 재시도 차단

  • 연차촉진 프로세스는 통상 1차 통보 → 2차 통보 → 3차 통보 순서로 진행됩니다.
  • 이미 발송된 2차·3차 촉진 단계를 중복 재시도하는 것을 차단하는 로직이 적용되었습니다.
  • 이를 통해 동일 단계 중복 발송으로 인한 데이터 오염을 방지합니다. fix-task-0619-md

3. 발송일시·응답일 시간 미표시 버그 수정

  • 기존에는 연차촉진 발송일시와 응답일에 시간이 표시되지 않는 버그가 있었습니다.
  • 사용자 vacation 페이지 및 관리자 vacation 페이지 총 7곳에 시간 표시 처리가 적용되었습니다. fix-task-0619-md

연차촉진 플로우


발송일시·응답일 표시 적용 범위

적용 위치페이지 유형
연차촉진 발송일시 표시 (7곳)사용자 vacation 페이지, 관리자 vacation 페이지
구체적인 7개 위치의 컴포넌트명은 소스에 명시되지 않았습니다. fix-task-0619-md

관련 이슈 및 주의사항


미완료 항목

07월 13일 추가 미구현 이슈 fix-task-0713 (26년 07월 13일 수정사항) · 07월 14일에도 동일 이슈 미해결 확인 fix-task-0714 (26년 07월 14일 수정사항) · 07월 15일에도 동일 이슈 미해결 확인 fix-task-0715 수정사항

threshold_days 변경 시 기존 대상자 미정리

  • sync_promotion_targets()에서 threshold 미달 대상자 삭제 조건이 first_status == "PENDING" AND second_status == "PENDING"인 경우만 해당.
  • 1차 알림 발송 완료(first_status = "NOTIFIED")된 대상자는 threshold를 올려도 목록에서 제거되지 않음.
  • 예시: threshold=3일 때 등록+1차 발송 → threshold=100으로 변경 → 잔여 19일인 직원이 여전히 대상자 목록에 표시됨.
  • 수정 대상: backend/app/services/policy_service.pysync_promotion_targets() 정리 조건에서 threshold 미달 시 알림 발송 여부와 무관하게 제거하거나, 최소한 목록 조회 시 현재 threshold 기준으로 필터링. fix-task-0713 (26년 07월 13일 수정사항) fix-task-0714 (26년 07월 14일 수정사항) fix-task-0715 수정사항

설정값 미적용 (알림 채널 / 자동 실행 / 촉진 시기 / 응답 기한)

  • AnnualPromotionSettingfirst_notify_months_before, second_notify_months_before, first_notify_deadline_days, auto_schedule, use_email / use_push / use_kakao 값이 DB에 저장만 되고 실제 로직에 반영되지 않음.
  • 현재 알림 발송은 인앱 알림(create_notification)만 생성하며, 채널 분기 / 자동 스케줄러 / 시기 판단 / 기한 초과 처리 없음. fix-task-0713 (26년 07월 13일 수정사항) fix-task-0714 (26년 07월 14일 수정사항) fix-task-0715 수정사항
연차촉진 잔여 과제AI · 출처 클릭
미완료6
관리자 휴가 잔액 조정 드로어에 change_type 선택 UI 추가 (ADJUST/CARRYOVER/EXPIRE)
fix-task-0619.md
연말 미사용 연차 자동 이월 정책 설정 UI 필요 여부 확인 (회사별 이월 한도, 소멸 기한 등)
fix-task-0619.md
이월된 연차의 만료일(expires_at) 관리 — 이월 시 만료일 자동 설정 로직 확인
fix-task-0619.md
사용자 카드 '이월 N일' 표시 시 carryover_days=0일 때 undefined 방지 확인
fix-task-0619.md
sync_promotion_targets() — threshold 미달 시 first_status=NOTIFIED 대상자도 제거하도록 정리 조건 확장 (policy_service.py)
fix-task-0713 (26년 07월 13일 수정사항)
AnnualPromotionSetting 설정값 실제 적용: first/second_notify_months_before, first_notify_deadline_days, auto_schedule, use_email/use_push/use_kakao 채널 분기 및 자동 스케줄러 구현
fix-task-0715 수정사항

관련 페이지

Made with CairniExplore public wikis →