Skip to content

feat: 업무함 근로자·Case 화면 구현 - #215

Merged
BcKmini merged 1 commit into
mainfrom
feat/issue-214-work-inbox
Jul 31, 2026
Merged

feat: 업무함 근로자·Case 화면 구현#215
BcKmini merged 1 commit into
mainfrom
feat/issue-214-work-inbox

Conversation

@hywznn

@hywznn hywznn commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

배경

기존 /tasks의 Task 단위 평면 목록을 이슈 #214 기준의 근로자 중심 마스터–디테일 업무함으로 재구성했습니다.

화면용 샘플 데이터를 하드코딩하지 않고 기존 Worker·Task·Workflow API 응답을 조합합니다. 현재 API에서 제공하지 않는 정보는 임의로 추측하지 않고 안내 상태로 표시합니다.

주요 변경

업무함 UI

  • 왼쪽 근로자 목록 / 오른쪽 선택 대상 상세의 2단 구조 적용
  • 선택 근로자의 우선 Case, 검토할 업무, 현재 결정 상태 표시
  • 업무함이 메인 콘텐츠 영역의 전체 너비를 사용하도록 조정
  • 좁은 화면에서는 목록과 상세가 한 열로 전환
  • 근로자 선택 상태를 ?workerId=에 저장해 새로고침 후에도 복원
  • 근로자명·업무명·Workflow명·Case ID 통합 검색
  • 우선순위·마감 임박순·근로자명 정렬 지원

데이터 결합과 우선순위

  • workers, tasks, workflow-catalogs를 각각 한 번 조회하고 worker_id로 결합
  • 목록 항목별 상세 요청을 만들지 않아 N+1 요청 방지
  • 동일한 case_id의 Task를 하나의 Case로 그룹화
  • case_id가 없는 Task는 각각 독립된 fallback Case로 처리
  • 업무 상태 → 마감일 → Task ID 순서로 결정적인 우선순위 계산
  • Case 진행률은 현재 조회된 Case의 COMPLETED Task / 전체 Task 기준으로 계산
  • 결합·검색·정렬 로직과 상태·기한·CTA 표현 로직을 별도 모듈로 분리

상태 및 오류 처리

  • Worker 조회 중·실패·빈 데이터 상태 제공
  • Task 조회 실패 시 근로자 목록은 유지하고 Task 조회만 재시도
  • 등록된 Task가 없으면 업무 생성 화면으로 이동하는 CTA 제공
  • 검색 결과 없음 상태 분리
  • Workflow Catalog 조회 실패 시 Task 유형명으로 대체
  • Worker 응답에서 참조할 수 없는 Task는 목록에서 제외하고 안내
  • 전체 건수가 현재 조회 상한인 100건을 초과하면 검색·정렬·진행률 범위 제한 안내

상세 이동과 접근성

  • Case 열기와 검토 CTA를 기존 Task 상세 화면에 연결
  • 실제 동작에 맞게 라우트 파라미터를 /tasks/:caseId에서 /tasks/:taskId로 정리
  • fetchTasks()caseId 필터 파라미터 지원 추가
  • 근로자 목록에 listbox/option, 선택 상태, 키보드 포커스 적용
  • 방향키와 Home/End 키로 근로자 목록 이동 지원
  • 선택 대상 변경을 스크린 리더에 안내

현재 API 제약

이번 PR에서는 API에 없는 값을 샘플로 채우지 않았습니다.

  • Case 전용 제목과 체크리스트 기반 진행률
  • 근로자의 비자 유형·근무 라인·부서
  • 담당자·승인자 및 백엔드 추천 CTA
  • 판단 근거와 연결 문서 ID
  • 서버 전체 데이터를 대상으로 한 검색·정렬

따라서 현재 Case 열기는 Case ID가 아닌 대표 task_id로 기존 Task 상세에 이동합니다. 판단 근거와 문서 연결은 관련 API 계약이 마련된 후 후속 연동이 필요합니다.

검증

  • npm test -- --run — 65개 파일, 328개 테스트 통과
  • npm run lint
  • npm run build
  • 1440×900, 992×640 화면에서 레이아웃 및 가로 오버플로 확인

테스트에는 Worker·Task 결합, Case 그룹화, 검색·정렬, URL 선택 상태, 상세 이동, 부분 실패, 빈 데이터, Workflow fallback, 조회 상한 및 누락 참조 처리가 포함됩니다.

리뷰 요청 사항

  • 상태별 업무 우선순위가 실제 업무 흐름에 적합한지
  • Case 진행률을 Task 완료 비율로 계산하는 현재 기준이 적절한지
  • 상태별 CTA 문구와 강조 순서가 적절한지
  • 대표 Task 상세 이동을 유지할지 Case 전용 상세 API가 필요한지
  • 최대 100건의 클라이언트 결합 방식 이후 전용 projection API가 필요한지
  • 빈 데이터·부분 오류·누락 정보 안내가 충분한지

Closes #214

@BcKmini
BcKmini marked this pull request as ready for review July 31, 2026 16:20
@BcKmini
BcKmini merged commit 710e1c8 into main Jul 31, 2026
@BcKmini
BcKmini deleted the feat/issue-214-work-inbox branch July 31, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 업무함 근로자·Case 마스터–디테일 화면 구현

2 participants