Skip to content

HBEA400_결재 허브

(Hereby) 직원 앱 > 결재 허브

직원 앱 (Hereby Works, 포트 4002)
대상 사용자조건3 [EMPLOYEE] (self scope 인증 세션)
프로토타입TBU
관련 정책[[POL_결재워크플로우]] · mobile/approval
Statusreview
Owner카나

개요

결재 허브는 직원 앱 하단 탭바 "결재" 탭의 진입 화면으로, 직원 셀프서비스 신청을 4개 서브탭("휴가신청" / "근무" / "인센티브" / "서류관리")으로 통합한 신청 허브다. 4개 서브탭은 공통 골격(상단 서브탭 스위처 + 상태 필터 칩 + 신청 내역 리스트 + 우하단 FAB(+))을 공유하며, 세부 화면 사양은 각 하위 문서를 참조한다(중복 정의 금지). 모든 신청은 self scope 토큰으로 대기중 상태 생성되고, 승인/반려/취소는 팀장 결재([[HBTM01_TeamManager_팀결재워크스페이스]]) 큐가 처리한다. 4서브탭은 HBTM 승인 큐와 1:1 대응한다.

문서 히스토리

날짜작성자변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-08-06카나PM휴가 신청 항목 단일화 반영(59e955d)
2026-08-11카나PM인센티브 자가 등록·주말 당직 세션 요청 반영(PR #533)

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
$직원 인증 세션 (self scope)/employee-app/signin 리다이렉트미인증 진입 차단
$클라이언트 상태 (tabKey)기본값 "휴가신청"4서브탭 스위처
$서브탭별 *Request[] (self)각 서브탭 Empty 문구서브탭 문서 참조
$status enum ↔ *Request.status 집계카운트 0은 라벨만 (숫자 미표기)census 예 "전체 3 / 대기중 2 / 취소 1"

Client → Server

액션전달 값tRPC procedure권한 토큰
서브탭 전환tabKey클라이언트 상태 (재조회)self
상태 필터statusKey리스트 필터 (전체/대기중/승인/반려/취소)self
신청 작성 (FAB)서브탭별 폼 오픈각 화면 procedure (sdk.leave / overtime / fieldwork.request(), 추정)self

외부 통합 (cross-app)

외부 시스템데이터동기/비동기비고
팀결재 [[HBTM01_TeamManager_팀결재워크스페이스]]신청(대기중) → 승인/반려/취소 상태 write-back비동기4서브탭 = HBTM 승인 큐 1:1
Admin 유형/근태 [[HBAD261_유형 설정 (연장근무·외근·휴가)]]연장/외근/휴가 유형 taxonomy source동기select 옵션 원천

화면 플로우 (Mermaid 의무)


결재 허브 공통 구조 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-조건1 [직원 인증] 세션 시 노출. CASE01 [미인증] → /employee-app/signin 리다이렉트인증 세션 (self scope)
01초기 상태Output하단 탭바 "결재" 진입 시 기본 서브탭 CASE01 [휴가신청] 활성. 근무·인센티브·서류 서브탭은 클릭 시 로드$
10서브탭 스위처Tab• 상단 4서브탭 "휴가신청" / "근무" / "인센티브" / "서류관리" 간 전환 기능
• 클릭 → 해당 서브탭 전환(내역·필터 재로드)
HBEA410 / HBEA420 / HBEA430 / HBEA4404서브탭 = HBTM 승인 큐 1:1
ㄴ11휴가신청 탭Tab• 연차현황 카드 + 휴가 신청 내역 서브탭
• 클릭 → [[HBEA410_휴가신청]]
LeaveRequest
ㄴ12근무 탭Tab• 연장·휴일/외근 신청 + 보고서 요약 서브탭. 내역 필터 칩 4종
• 클릭 → [[HBEA420_근무 신청 (연장·휴일/외근)]]
OvertimeRequest / FieldWorkRequest[[HBEA421_보고서 제출]] 연계
ㄴ13인센티브 탭Tab• 월별 인센티브 조회 서브탭(당월 "2026년 7월 합계 0건")
• 상단에 "주말 당직 치료 세션 신청" 진입 버튼(안내 "당일 항목별 건수와 당직 인원을 적어 상신해요") — 세션 신청 모달로 이동
• 클릭 → [[HBEA430_인센티브]]
IncentiveRecord · TreatmentSessionRequest주말 당직 세션 신청 진입점(77da351)
ㄴ15주말 당직 치료 세션 요청Button• 주말 당직 근무의 치료 세션을 항목별 건수·당직 인원으로 상신하는 신청 유형(전자결재, 인센티브 탭 상단)
 - 모달 제목 "주말 당직 세션 신청" · 입력: "근무일" / "치료 항목별 건수"(항목·단가·건수 행) / "당직 인원"(본인 포함, 선택 순서대로 잔여 원이 배분돼요) / "메모"(선택)
 - 안내 "병원분·인당 분배 금액은 승인 시 자동 계산돼요. 승인 전에는 정산에 반영되지 않아요."
• 상신 시: 대기중 세션 요청 생성 → 팀장 승인/반려([[HBTM01_TeamManager_팀결재워크스페이스]]) · 승인 시 세션 생성·정산 반영
TreatmentSessionRequest · [[HBEA430_인센티브]]신설 (코드 반영: 77da351) · 신청→승인 플로우(자동 판별 아님)
ㄴ14서류관리 탭Tab• 증명서 제출/요청 목록 서브탭
• 클릭 → [[HBEA440_서류관리]]
DocumentRequest
20상태 필터 칩Filter• 신청 내역을 상태로 거르는 가로 칩 5종+카운트 "전체 3" / "대기중 2" / "승인" / "반려" / "취소 1". 카운트 0은 라벨만(숫자 미표기)
• 클릭 → 목록 필터 적용, 선택 칩 강조
status enum ↔ *Request.status휴가신청 탭 census 예시. TBU: 상태 enum 원문 값(대기중=pending 등)
ㄴ22근무 탭 내역 필터 칩Filter• 근무 탭 전용 신청 종류 필터 "전체 / 연장·휴일 / 외근 / 보고서". 인센티브 탭은 상태 칩 "전체 / 대기중 / 승인 / 반려 / 취소" 사용
• 클릭 → 신청 종류 필터
[[HBEA420_근무 신청 (연장·휴일/외근)]]근무·인센티브 탭 칩 상이
30신청 내역 리스트List서브탭별 신청 행. 필터 칩 결과에 종속. 행 구조·인터랙션은 각 서브탭 문서 참조각 화면 HBEA410-440TBU: ${requests} 부재 → 리스트 비우고 Empty / ${status_counts} 부재 → 칩 라벨만(카운트 hide) / 로드 실패 UI 미확인(무반응이면 버그 후보)
ㄴ30-EEmptyText휴가신청 "휴가 신청 내역이 없어요" / 근무 "근무 신청 내역이 없습니다" / 인센티브 "인센티브 내역이 없어요." (원문 카피)각 서브탭문구 서브탭별 상이
40신청 작성 FABButton (+)• 결재 화면에서 등록 가능한 항목을 한 곳에 모은 신규 등록 바텀시트를 여는 우하단 플로팅 "+"(접근성 이름 "새 신청", 안내 "결재로 등록할 수 있는 항목이에요."). 조건3 [EMPLOYEE] self scope 신청만(승인 mutation 없음). 서브탭과 무관하게 동일 시트
• 클릭 → 등록 항목 분기
 - 휴가: 단일 "휴가" 신청 폼 모달 → [[HBEA410_휴가신청]]
 - 근무: "연장·휴일 근무 신청" / "외근 신청" → [[HBEA420_근무 신청 (연장·휴일/외근)]]
 - 인센티브: "인센티브 등록"(안내 "오늘 실적을 항목·건수로 등록") → CASE01 [설정 토글 ON]: 노출 · CASE02 [OFF]: 미노출
 - 서류: "서류 제출·요청" → [[HBEA440_서류관리]]
각 화면 신청 폼 · organization_parameters(incentive.self_registration)인센티브 자기 등록 진입점은 조직 설정 토글 ON일 때만 노출(db3e9b3·3374b53, incentiveSelfRegEnabled 게이트) [[HBAD270_설정 (조직 설정·내 정보)]]. 휴가 진입은 단일 "휴가" 버튼으로 통합(59e955d), 휴가 유형 선택은 HBEA410 모달 내 select로 이동
50신청 → 결재 → 보고 흐름-STEP1 [신청] → STEP2 [결재] → STEP3 [보고] 3단계. 서사는 화면 플로우 mermaid 참조. 직원앱은 self scope 신청·조회만[[HBTM01_TeamManager_팀결재워크스페이스]][[POL_결재워크플로우]]

상태 / 권한 요약

시나리오트리거결과 화면비고
CASE01 [미인증 진입]결재 탭 직접 진입/employee-app/signin 리다이렉트조건1 인증 필요
CASE02 [직원 진입]인증 세션기본 서브탭 "휴가신청" 표시
CASE03 [서브탭 전환]서브탭 스위처 클릭해당 서브탭 내역·필터 재로드
CASE04 [신청 작성]FAB(+) → 폼/액션시트 제출신청 record 대기중 생성, HBTM 결재 큐 인입self scope 토큰
조건3 [EMPLOYEE]전 서브탭조회·신청만, 승인/지급 mutation 불가HBTM 소관

Open Question

  • 상태 필터 칩 카운트 산정 범위(전체 기간 vs 조회 월) 및 "전체" 정의(취소 포함 여부). TBU.
  • 상태 enum 원문 값(대기중=pending 등 매핑) 및 취소 트리거(직원 self-cancel vs 팀장 취소 — 휴가는 관리자 결재, 외근은 직원 즉시 취소로 상이). TBU.
  • 서브탭별 배지/알림 미읽음 카운트 노출 여부. TBU.
  • 리스트 로드 실패 시 에러 UI(재시도/토스트). 라이브 미검증. TBU.