51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# 근태현황 캘린더 영업팀 제외 필터 누락 수정
|
|
|
|
**날짜:** 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) — 자동 결근 처리 수동 트리거 전환
|