Files
sam-docs/changes/20260109_handover_report_api_integration.md
kent 7b18ee1b10 docs: 개발 계획 및 변경 이력 문서 추가
- 작업지시 계획 문서 업데이트
- MES 통합 분석, 서버 컴포넌트 감사 계획 추가
- 수주관리, 인수인계서 API 연동 변경 이력 추가
- sub/ 하위 계획 문서들 추가 (카테고리, 계약, 품목, 단가 등)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-15 08:54:31 +09:00

2.9 KiB

변경 내용 요약

날짜: 2026-01-09 작업자: Claude Code 이슈: Phase 1.2 인수인계보고서관리 Frontend API 연동

📋 변경 개요

인수인계보고서관리(Handover Report) Frontend의 actions.ts를 Mock 데이터에서 실제 API 연동으로 변환했습니다.

📁 수정된 파일

파일 변경 내용
react/src/components/business/construction/handover-report/actions.ts Mock → API 완전 변환
docs/plans/sub/handover-report-plan.md 진행 상태 업데이트

🔧 상세 변경 사항

1. actions.ts 완전 재작성 (499줄)

제거된 코드:

  • MOCK_REPORTS 배열 (7개 목업 데이터)
  • MOCK_REPORT_DETAILS 객체 (상세 목업 데이터)
  • 모든 목업 기반 로직

추가된 코드:

헬퍼 함수

// API 요청 헬퍼 (쿠키 기반 인증)
async function apiRequest<T>(endpoint, options): Promise<ApiResult<T>>

// 타입 변환 함수들
function transformHandoverReport(apiData): HandoverReport
function transformHandoverReportDetail(apiData): HandoverReportDetail
function transformToApiRequest(data): Record<string, unknown>

API 연동 함수

함수명 HTTP Method Endpoint 용도
getHandoverReportList GET /construction/handover-reports 목록 조회
getHandoverReportStats GET /construction/handover-reports/stats 통계 조회
getHandoverReportDetail GET /construction/handover-reports/{id} 상세 조회
createHandoverReport POST /construction/handover-reports 등록 (신규)
updateHandoverReport PUT /construction/handover-reports/{id} 수정
deleteHandoverReport DELETE /construction/handover-reports/{id} 삭제
deleteHandoverReports DELETE /construction/handover-reports/bulk 일괄 삭제

타입 변환 매핑

  • snake_case (API) ↔ camelCase (Frontend)
  • 중첩 객체 처리: managers, items, external_equipment_cost
  • null 안전 처리 및 기본값 설정

2. handover-report-plan.md 업데이트

  • 상태: 대기 → 🔄 진행중
  • Frontend 작업 상태 갱신
  • 마지막 업데이트 날짜 변경

검증 결과

  • TypeScript 타입 검사: 오류 없음
  • ESLint 검사: 오류 없음
  • 타입 정합성: types.ts와 완전 일치

⚠️ 알려진 이슈 (별도 작업 필요)

HandoverReportListClient.tsx에 기존 타입 불일치 존재:

  • partnerId - HandoverReport 타입에 없음
  • contractManagerId - HandoverReport 타입에 없음
  • constructionPMId - HandoverReport 타입에 없음

→ 이번 작업 범위 외, 별도 수정 필요

🔗 관련 문서