Skip to content

HBSA220_Attendance Review (크로스-org 근태) ​

(Hereby) 시스템 관리 > [[HBSA200]] > Attendance

앱System Admin (포트 4100)
부모 화면[[HBSA200]]
대상 사용자플랫폼 운영자(OPERATOR)
프로토타입TBU
관련 정책[[POL_권한(RBAC)]]
Statusdraft (코드 기반 — 라이브 실사 불가: dev 라우트 AccessDenied 격리, 2026-08-25 확인)
Owner카나

개요 ​

조직·기간·사번 필터로 특정 조직의 근태 기록을 조회하는 뷰어(읽기 전용). 조직 선택 필수 — 조직을 고르면 그 엔드포인트로 ?endpoint= 라우팅되어 systemOrgAttendance(필터·페이지네이션)를 호출한다.

문서 히스토리 ​

날짜작성자팀변경 내용
2026-08-25카나콸최초 작성 (redesign PR #583 코드 census 기반, 라이브 미실사)

Data I/O ​

Client → Server ​

액션전달 값콘솔 RESTsystemProcedure
SEARCH{ organizationId, from, to, employeeNumber?, page }GET /api/organizations/:orgId/attendance (?endpoint=)systemOrgAttendance

Server → Client ​

변수소스값 없을 때비고
attendanceRecords[]systemOrgAttendanceEmpty(초기 안내)date/emp#/name/status/checkIn/checkOut/regular/overtime/total/notes
attendanceTotal / attendancePage / attendanceTotalPages페이지네이션0

코드 근거: tabs/attendance.html, server/routes/attendance.ts.


화면 플로우 ​


Attendance 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-activeTab === 'attendance'-
01초기 상태Output결과 없음: "Select an organization and date range, then click SEARCH"-
10필터 바-ORGANIZATION / FROM(date) / TO(date) / EMPLOYEE #(placeholder "optional") / SEARCH-
11ㄴ ORGANIZATIONDropdown"-- select --" + 전 조직(code — name)attendanceOrgId선택 시 endpoint 라우팅
12ㄴ SEARCHButton"SEARCH" → searchAttendance(1). !attendanceOrgId 시 disabled. 로딩 중 "loading..."systemOrgAttendanceorg 필수
20결과 요약Output"Total: {n}" + "page {p} / {tp}" + prev/next-
21ㄴ prev/nextButton페이지 이동. 경계에서 disabledsearchAttendance(p±1)
30근태 테이블List[List] 컬럼 date/emp #/name/status/check in/check out/regular/overtime/total/notesattendanceRecordsdate=orange, total=bold
31ㄴ status 배지Badgechecked_out=green / checked_in=orange / absent=red / late=yellow / 그 외 gray-status enum 일부만 코드 노출
30-Eㄴ EmptyText0건 시 안내 문구(01) 유지-
40값 없음 처리-regular/overtime/total 없으면 "0", notes 없으면 "—", checkIn/Out은 fmtTime-
50에러·실패-로드 실패 → tabError 배너. 실측 TBU-
60권한별 차이-OPERATOR 전 org / SUPPORT 발급 grant org만 조회 가능 추정[[POL_권한(RBAC)]]읽기 전용(mutation 없음)

권한 / 상태 요약 ​

시나리오트리거결과비고
case01 [org 미선택]진입SEARCH 비활성
case02 [정상 조회]org+SEARCH테이블 + 페이지네이션design 라이브: BESTRH 6908건
case03 [0건]결과 없음빈 안내

OQ ​

  • status enum 전체 값 = 코드에 4종만 매핑, 나머지 gray fallback TBU
  • from/to 미입력 시 기본 기간 = TBU