SimpleHR
교대 부서 조회 하이브리드 방식 (policy_service.py)
High confidenceconceptedited by Cairni · 방금 · AIv1
개요
policy_service.py 내 list_shift_departments 및 _lookup_policy_for_department 두 함수는 교대/변형근무 부서를 조회할 때 두 가지 경로를 순차적으로 탐색하는 하이브리드 방식을 사용한다. 이는 시드 데이터와 정상적인 UI 등록 데이터가 공존하는 환경을 모두 지원하기 위해 도입되었다. SimpleHR 주요 이슈 및 개선 사항의 교대(변형)근로 관련 버그 수정 맥락에서 구현되었다. fix-task-0602.md
조회 경로 상세
1차 — DepartmentWorkPolicy 경로
- 적용 조건: 관리자가 부서별 근로정책 UI를 통해 교대/변형 정책을 부서에 직접 할당한 경우
- 조회 방식:
DepartmentWorkPolicy테이블 JOIN을 통해 조회 - 특징: 해당 부서 직원에게
shift_team_name이 없어도 부서가 목록에 노출됨
2차 — Employee fallback 경로
- 적용 조건: 시드 데이터 등 직원에게 직접
shift_team_name+work_policy_id가 배정된 경우 - 조회 방식:
Employee.shift_team_name IS NOT NULL조건으로 부서를 역추적 - 특징:
DepartmentWorkPolicy레코드가 존재하지 않는 기존(레거시) 데이터에서도 동작
서버 로그 예시
서버 로그를 통해 각 요청이 어느 경로를 통해 처리되었는지 확인할 수 있다.
[SHIFT-DEPTS] DepartmentWorkPolicy: ['개발2팀'], Employee fallback: ['AI 운영센터']
[SHIFT-LOOKUP] dept=xxx → DepartmentWorkPolicy 경로 (policy=개발2팀 3교대)
[SHIFT-LOOKUP] dept=yyy → Employee fallback 경로 (policy=AI 운영센터 변형근무)관련 이슈 배경
이 구현은 2026년 06월 02일 수정 요청에서 제기된 다음 교대/변형근무 문제들과 연관된다.
| 상태 | 이슈 내용 |
|---|---|
| ✅ 완료 | 고객센터 변형근무 — 근로정책 설정값과 교대(변형)근로관리 근로 패턴 불일치 |
| ✅ 완료 | 근로정책에서 D/D1/E/N 근무시간 대표 네임 설정 후 미표시 문제 |
| ✅ 완료 | 변형 근무 설정 UI 깨짐 |
| ✅ 완료 | 교대근무 및 변형근무 설정에서 "기본근무시간" 불필요 항목 제거 |
| ⬜ 미완료 | AI운영센터 4교대(D/D1/E/N) — 변형근로 인원 18명~15명으로 지정되는 문제 |
| ⬜ 미완료 | 주말 및 휴일 전체 휴무 시 선택사항 없음(무조건 근무 값만 설정) |
| ⬜ 미완료 | 조 이름 변경 및 4교대 → 2교대 수정 후 이전 교대 패턴 일부 잔존 |