# 근태현황 캘린더 영업팀 제외 필터 누락 수정 **날짜:** 2026-03-20 **작업자:** Claude Code ## 변경 개요 근태현황 캘린더에서 영업팀 사원(오세형)이 결근으로 표시되는 오류를 수정한다. --- ## 원인 분석 2가지 문제가 복합적으로 발생: 1. **자동 결근 스케줄러에 영업팀 제외 로직 부재**: 기존 `markAbsentees()`가 `getExcludedUserIds()`를 호출하지 않아 영업팀 사원도 결근 처리됨 (3/19 23:50 자동 실행으로 오세형 결근 레코드 생성) 2. **캘린더 뷰에 제외 필터 누락**: `getMonthlyCalendarData()`에만 `getExcludedUserIds()` 필터가 빠져있음. 목록/통계/요약에는 적용되어 있었음 --- ## 수정된 파일 | 파일 | 변경 내용 | |------|----------| | `mng/app/Services/HR/AttendanceService.php` | `getMonthlyCalendarData()`에 `getExcludedUserIds()` 필터 추가 | ## 추가 조치 | 조치 | 내용 | |------|------| | 운영DB | 오세형(user_id:84) 잘못된 결근 레코드(id:432) 직접 삭제 | --- ## 제외 필터 적용 현황 (수정 후) | 메서드 | 제외 필터 | |--------|:---------:| | `buildFilteredQuery()` (목록) | ✅ | | `getMonthlyStats()` (통계) | ✅ | | `getMonthlyCalendarData()` (캘린더) | ✅ (이번 수정) | | `getEmployeeMonthlySummary()` (요약) | ✅ | | `getOvertimeAlerts()` (초과근무) | ✅ | | `markAbsentees()` (결근 처리) | ✅ (이전 커밋에서 수정) | --- ## 관련 문서 - [20260320_attendance_manual_absent.md](20260320_attendance_manual_absent.md) — 자동 결근 처리 수동 트리거 전환