docs: [근태] 캘린더 영업팀 제외 필터 누락 수정 변경이력 추가
This commit is contained in:
50
changes/20260320_attendance_calendar_exclude_fix.md
Normal file
50
changes/20260320_attendance_calendar_exclude_fix.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 근태현황 캘린더 영업팀 제외 필터 누락 수정
|
||||
|
||||
**날짜:** 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) — 자동 결근 처리 수동 트리거 전환
|
||||
Reference in New Issue
Block a user