Skip to content

HBEA421_보고서 제출

(Hereby) 직원 앱 > 결재 허브([[HBEA400_결재 허브]]) > 근무([[HBEA420_근무 신청 (연장·휴일/외근)]]) > 보고서 제출

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

개요

보고서 제출은 근무 신청([[HBEA420_근무 신청 (연장·휴일/외근)]]) "근무" 서브탭 요약의 보고서 카운트에 대응하는 근무 보고서(외근·연장 후속 보고) 제출 표면이다. 트리거는 승인된 외근(연장) 내역 행에 노출되는 "외근 보고서 작성" 버튼으로, 팀장이 외근 신청을 승인([[HBTM220_근무 관리 (연장·휴일/외근)]])하면 신청자 화면 해당 행에 버튼이 등장한다. 보고서 폼 제출은 2026-07-12 dev 실행으로 검증되었다 — 제출 후 요약 카운트 증가, 내역 행 "실제 외근 시간: {n}h" + 보고 내용 표시, "외근 보고서 작성" 버튼 소멸, 상태 "보고서 대기"로 전이한다. 공통 서브탭 골격은 [[HBEA400_결재 허브]]을 참조한다.

문서 히스토리

날짜작성자변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영
2026-07-12카나PM실행 검증 반영 (콸 승인)
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
$보고서 제출·승인 건수 집계"보고서 0건 (승인 0)"근무 요약 카드 소비([[HBEA420_근무 신청 (연장·휴일/외근)]])
$offsite_work_records.report / overtime_records.report (jsonb, self, 추정)근무 필터 "보고서" 0건 시 근무 내역 Empty상세 구조 TBU

Client → Server

액션전달 값tRPC procedure권한 토큰
보고서 제출 ("제출")recordId·시작·종료시간·유형·reportBodysdk.*.submitReport() (추정)self

외부 통합 (cross-app)

외부 시스템데이터동기/비동기비고
팀결재 [[HBTM220_근무 관리 (연장·휴일/외근)]]승인 → "외근 보고서 작성" 버튼 노출 트리거 / 보고서 대기 → 승인·반려비동기팀장 결재 소관

화면 플로우 (Mermaid 의무)


보고서 제출 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-• 조건1 [직원 인증] · 승인된 외근(연장) 내역 행의 "외근 보고서 작성" 버튼으로 폼 진입
• 클릭 시: 보고서 폼 진입
 - CASE01 [승인 전]: 버튼 미노출
 - CASE02 [승인]: 버튼 노출
인증 세션 (self) · [[HBTM220_근무 관리 (연장·휴일/외근)]]승인 후 트리거 (검증)
01초기 상태Output• 근무 서브탭 요약 카드 "보고서 {n}건 (승인 {m})"
 - CASE01 [미제출]: "보고서 0건 (승인 0)" (census)
$census 관측
10보고서 요약Output• 근무 요약 카드에서 "보고서 {n}건 (승인 {m})" 노출. 보고서 제출 시 건수 증가
 - 검증: 제출 후 "보고서 1건 (승인 0)"
[[HBEA420_근무 신청 (연장·휴일/외근)]]제출 시 카운트 증가 (검증)
20보고서 목록List• 근무 내역 필터 "보고서" 종속 행. 상태 배지 노출offsite_work_records.report / overtime_records.report (추정)값없음: ${reports} 부재 → "보고서" 필터 결과 비움 · ${report_count} 부재 → "보고서 0건 (승인 0)" 기본 · TBU: 목록 로드 실패 동작 미검증, 무반응이면 버그 후보
ㄴ21ㄴ 제출 완료 행-CASE01 [제출 완료] → 행에 "실제 외근 시간: {n}h" + 보고 내용 표시, "외근 보고서 작성" 버튼 소멸, 상태 "보고서 대기"전부 검증 (2026-07-12)
ㄴ22상태 배지BadgeCASE01 [제출 직후] → "보고서 대기" (검증). 이후 승인/반려 전이는 [[HBTM220_근무 관리 (연장·휴일/외근)]] 참조record status (추정)TBU: 승인/반려 전이
ㄴ20-EEmptyText근무 내역 0건 → "근무 신청 내역이 없습니다" (원문 카피, 근무 서브탭 공통)census 원문
30외근 보고서 작성 버튼Button• 승인된 외근(연장) 내역 행에서 보고서 폼을 여는 버튼
• 클릭 시: "외근 보고서" 폼 모달 오픈
외근 보고서 폼 · [[HBTM220_근무 관리 (연장·휴일/외근)]]승인 트리거 (검증)
ㄴ31ㄴ 제출 후 상태-CASE01 [제출됨] → 버튼 소멸(검증)

서브 화면 / 모달 사양표

외근 보고서 폼 (모달) 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00진입 조건-승인된 외근 내역 행 "외근 보고서 작성" 클릭 시 모달 오픈. 제목 "외근 보고서"30 버튼
01초기 상태-신청서 값 프리필. 근무일 수정불가 / 시작·종료 시간·사유 수정가능. "취소" / "제출" 노출대상 offsite_work_recordspolicy mobile/approval §3.2
10외근일(근무일)Output신청서와 동일, 수정 불가offsite_work_records.workDatepolicy: 수정 불가
20시작 시간Input (time)• 외근 시작 시각 필드. 신청서와 동일, 수정 가능
• 입력 시: 외근 시간 재계산 트리거
계산 입력policy: 수정 가능
30종료 시간Input (time)• 외근 종료 시각 필드. 신청서와 동일, 수정 가능
• 입력 시: 외근 시간 재계산 트리거
계산 입력policy: 수정 가능
40외근 시간 (자동 계산)Output• 시작·종료로 외근 시간을 자동 계산해 "외근 시간: n시간" 표시
 - CASE01 [시간 수정]: 재계산
계산값 (종료 − 시작)policy: 자동 계산
50유형Select• 외근/연장 유형을 선택하는 필드. 시간에 따라 자동 설정 후 직접 설정 가능(policy)
• 클릭 시: 유형 드롭다운
Admin 외근/연장 유형policy §3.2
60보고 내용Textarea• 보고 내용을 입력하는 필드. placeholder "외근 중 수행한 업무를 작성해주세요..."
• 입력 시: reportBody 채움
reportBody
ㄴ61사유 프리셋Button group클릭 → 보고 내용/사유 채움(자유입력 병행). 5종 원문 "거래처 방문" / "외부 미팅" / "교육·세미나" / "관공서 업무" / "물품 구매"reason외근 신청 폼과 동일 프리셋
70취소Button• 보고서 작성을 중단하는 버튼
• 클릭 시: 폼 모달 닫힘(제출 없음), 내역 행 버튼 유지
80제출Button• 보고서를 제출하는 버튼
• 클릭 시: 즉시 제출(컨펌 없음), 성공: 하위 결과(ㄴ81) → 대상 record report(jsonb) 반영(추정) → [[HBTM220_근무 관리 (연장·휴일/외근)]] 결재 큐 인입
mutation (self) · [[HBTM220_근무 관리 (연장·휴일/외근)]]TBU: 제출 실패 동작 미검증(무반응이면 버그 후보) · 보고 내용·시간 미입력 시 제출 차단 여부 미검증
ㄴ81ㄴ 제출 성공 결과-요약 "보고서 1건 (승인 0)" 카운트 증가 + 내역 행 "실제 외근 시간: {n}h" + 보고 내용 표시 + "외근 보고서 작성" 버튼 소멸 + 상태 "보고서 대기"전부 검증 (2026-07-12)

연동·플로우

  • 외근·연장 근무 STEP1 [승인 후] "외근 보고서 작성" → STEP2 [보고서작성] 외근 보고서 폼(시작·종료 시간 수정 → 외근 시간 자동 계산) → STEP3 [제출] "제출" → 요약 "보고서 1건 (승인 0)" 증가, 내역 행에 "실제 외근 시간: {n}h" + 보고 내용 표시, 버튼 소멸, STEP4 [보고서대기] 상태 "보고서 대기" → 대상 record의 report(jsonb)에 반영(추정) → 팀장 결재([[HBTM220_근무 관리 (연장·휴일/외근)]])에서 보고서 대기/승인/반려.
  • 외근 내역 행 "취소"(컨펌 없이 즉시, 대기→취소, 버튼 소멸)는 승인 전 신청 취소 경로로 [[HBEA420_근무 신청 (연장·휴일/외근)]] 소관이며, 본 흐름(승인 후 보고서)과 별개다.

권한 / 상태 요약

시나리오트리거결과비고
CASE01 [승인 전]외근 신청 대기"외근 보고서 작성" 버튼 미노출HBEA420 소관 취소 가능
CASE02 [승인]팀장 승인 (HBTM220)내역 행 "외근 보고서 작성" 버튼 노출검증
CASE03 [보고서 제출]폼 "제출"카운트 증가 + "실제 외근 시간: {n}h" + 버튼 소멸 + 상태 "보고서 대기"검증 (2026-07-12)
CASE04 [보고서 승인/반려]팀장 결재상태 "보고서 승인" / "보고서 반려"[[HBTM220_근무 관리 (연장·휴일/외근)]] 참조, 상세 TBU
조건3 [EMPLOYEE]self scope작성·제출만, 결재 mutation 없음HBTM220 소관

Open Question

  • 제출 후 상태 "보고서 대기"까지 검증됨. 이후 팀장 결재의 보고서 승인/반려 전이 상세는 [[HBTM220_근무 관리 (연장·휴일/외근)]] 참조.
  • 보고서가 연장/외근 각각의 report jsonb에 저장되는지, 별도 Report 엔티티인지. ERD 미확인. TBU.
  • 보고서 상태 enum 및 제출 필수 여부(승인 조건인지 선택 후속인지). TBU.
  • 제출 실패·필수값 미입력 시 폼 동작. 라이브 미검증. TBU.