HBAD253_외근 현황
(Hereby) 관리자 패널 > 근태 관리 > 근태 현황 > 외근 탭
| 메타 | 앱: 관리자 패널 (HBAD)대상 사용자: 조건1 [근태 관리] / 조건2 [근태 승인] / 조건3 [근태 조회 (팀)]프로토타입: TBU관련 정책: [[POL_외근]]Status: reviewOwner: 카나 |
개요
외근 현황은 근태 현황([[HBAD250_근태 현황 (근무)]])의 외근 탭으로, 직원별 외근 기록을 조회·관리한다 (4월 미지원 신규 모듈).원천은 offsite_work_records이며, 외근 유형은 [HBAD261_유형 설정 (연장근무·외근·휴가)]를 참조한다.상단에 상태 필터 8종, 기간 필터 6종, "외근 유형" 진입점을 제공하고 건수 / 외근 시간 합계 통계를 표시한다.
문서 히스토리
- 2026-07-06 최초 작성 - 카나/콸
- 2026-07-10 라이브 기능 검토 반영 (컬럼·필터·통계 확인) - 카나/콸
- 2026-07-13 버튼 행동 명세 보강 - 카나/콸
- 2026-07-21 GC700 깊이 재작성 - 카나/콸
- 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM
- 2026-07-28 코드 변경 반영(8299588) - 카나/PM
Data I/O
Server → Client
변수
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 상태 필터 | status | (재조회) | 근태 조회 (팀) |
| 기간 필터 | period | (재조회) | 근태 조회 (팀) |
| 외근 결재/관리 | offsiteRecordId, 승인/반려, rejectionReason | sdk.offsite.approve() (추정) | 근태 승인 / 근태 관리 |
외근 현황 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 노출 조건 | - | • 조건1 [근태 조회/관리 권한] 인증 시 노출- CASE01 [미인증]: /admin/signin 리다이렉트 | 인증 세션 · RBAC | |
| 01 | 초기 상태 | - | • 근태 현황 진입 후 "외근" 탭 클릭. 상태 필터 "전체" 기본 | ||
| 05 | 상태 필터 | Segmented | • "전체 / 대기 / 승인 / 반려 / 취소 / 보고서 대기 / 보고서 승인 / 보고서 반려" 8종 (s3 txt 원문) • 선택 시: status 기준 재조회 | 목록 재조회 (status 기준) | 8종 · s3 원문 |
| 08 | 상단 통계 | Stat | • "건수 {n}건 / 외근 시간 합계 {n}시간" (원문). 라이브 "건수 8건 / 외근 시간 합계 55.8시간" - CASE01 [값 없음]: "0건 / 0시간" | offsite_work_records 집계 | 라이브 원문 |
| 10 | 기간 필터 | Segmented | • "이번 주 / 지난 1주 / 이번 달 / 지난 1개월 / 지난 3개월 / 전체" 6종 (s3 원문). 날 유틸 칩을 공용 SubTab(sm·line·radius 4)으로 통일 — 보조 필터 위계로 정리 • 선택 시: workDate 기준 재조회 | 목록 재조회 (workDate 기준) | 6종 · 프리셋 SubTab 통일 (코드 반영: 8299588) |
| 12 | 소속 선택 | Dropdown | • "소속 선택" (s3 txt) 팀 필터 • 선택 시: teamId 기준 재조회 - CASE01 [값 없음]: 전체 | 목록 재조회 | s3 원문 |
| 14 | 검색 | Search | • placeholder "사번 / 이름 / 이메일" (원문). 연차 현황과 동일 규약: 176×32px, 0.3초 debounce, 필터 줄 오른쪽 끝 고정. 서버 페이지네이션 목록이라 offsiteWork.list에 search 파라미터로 재조회 • 입력 시: 해당 직원 필터 - CASE01 [결과 없음]: Empty | 목록 재조회 (search 파라미터) | 신규 (코드 반영: 8299588) · TBU: 검색 결과 없음 문구 |
| 20 | 외근 유형 진입 | Button | • "외근 유형" (s3 btn 원문) 버튼 • 클릭 시: "유형·기준 관리" 모달 외근 유형 섹션 | [[HBAD261_유형 설정 (연장근무·외근·휴가)]] · offsite_work_types | |
| 30 | 외근 기록 그리드 | Grid | • 직원별 외근 기록 그리드. 컬럼(s3 원문): 사번 / 이름 / 근무일 / 외근 시간 / 장소 / 유형 / 상태 / 관리 (8컬럼) - CASE01 [필터 결과 0건]: Empty state | offsite_work_records | 8컬럼 · TBU: Empty 원문 |
| ㄴ31 | 사번 | Cell | • 직원 사번 (read-only). 예: "ADMIN003" | employees.employeeNumber | |
| ㄴ32 | 이름 | Cell | • 직원 성명. 예: "안세희" | employees.name | |
| ㄴ33 | 근무일 | Cell | • 외근 근무일 (YYYY. MM. DD.). 예: "2026. 07. 06." | offsite_work_records.workDate | |
| ㄴ34 | 외근 시간 | Cell | • 외근 시간 (h). 라이브 "1시간" / "16.9시간" / "0시간" | offsite_work_records.workHours · startTime / endTime | 시간(h) 표기 |
| ㄴ35 | 장소 | Cell | • 외근 장소. 라이브 값 "55555" / "테스트" / "삭제" 등 (개발 junk 데이터) | offsite_work_records.location | |
| ㄴ36 | 유형 | Badge | • 외근 유형. 라이브 값 "테스트" / "3" / "2" (숫자 라벨은 junk). 값 없으면 셀 미표기 | offsite_work_records.typeId → offsite_work_types.name | |
| ㄴ37 | 상태 | Badge | • 결재 상태 (default pending). 라이브 값 "보고서 승인" / "취소" / "보고서 반려" / "승인" / "반려" | offsite_work_records.status (status_enum) | 값: 상태 필터 8종 대응 |
| ㄴ38 | 관리 | Button | • 행 "보기" (s3 btn 원문) 버튼 • 클릭 시: 외근 상세 (실화면 미오픈) - CASE01 [승인]: approvedBy·approvedAt 기록 - CASE02 [반려]: rejectionReason 기록 | offsite_work_records.approvedBy/At · auditLog | 근태 승인 · TBU: 실패 처리 |
페이지네이션 (라이브 관찰)
| 항목 | 라이브 값 | 비고 |
|---|---|---|
| 페이지 컨트롤 | "« ‹ 1 › »" | s3 btn 원문 |
| 총 건수 표기 | "총 8건 중 1-8건" | s3 txt 원문 |
외근 데이터 구조 (ERD 근거)
| 항목 | ERD 근거 | 비고 |
|---|---|---|
| 사유 | offsite_work_records.reason (text, nullable) | 외근 사유 |
| 보고 | offsite_work_records.report (jsonb) | 외근 결과 보고 (보고서 대기/승인/반려 상태 대응, 추정) |
| 감사 이력 | offsite_work_records.auditLog (jsonb, default []) | 업무별 이력 |
| 유형 마스터 | offsite_work_types (name·sortOrder·isActive) | [[HBAD261_유형 설정 (연장근무·외근·휴가)]] |
권한 · 상태 분기 요약
| 시나리오 | 트리거 | 결과 화면 | 비고 |
|---|---|---|---|
CASE01 [조회] | 외근 탭 진입 | offsite_work_records 그리드 + 통계 | 근태 조회 (팀) |
CASE02 [상태 필터] | 8종 상태 선택 | status 기준 재조회 | 보고서 상태 3종 포함 |
CASE03 [승인] | "보기" → 승인 | approvedBy/At 기록 | 근태 승인 |
CASE04 [반려] | "보기" → 반려 | rejectionReason 기록 | |
CASE05 [보고서 결재] | 보고서 대기 건 | 보고서 승인/반려 (TM 결재 [[HBTM220]] 연동) | 상태 "보고서 승인" |
Open Question
- offsite_work_records_status_enum 전체 값 (상태 필터 8종 대응 매핑). TBU.
- "외근 시간" 셀 표기 (시간 h vs 시각 범위). 라이브는 h 표기 관찰. 시각 범위 병행 여부 TBU.
- report(jsonb) 외근 보고 UI 노출 (보고서 대기/승인/반려 상태와 [[HBTM220]] 결재 연계). TBU.
- 외근 상세 모달 실화면 (승인/반려/수정 버튼 구성). TBU.