- 작업지시 계획 문서 업데이트 - MES 통합 분석, 서버 컴포넌트 감사 계획 추가 - 수주관리, 인수인계서 API 연동 변경 이력 추가 - sub/ 하위 계획 문서들 추가 (카테고리, 계약, 품목, 단가 등) Co-Authored-By: Claude <noreply@anthropic.com>
2.9 KiB
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 타입에 없음
→ 이번 작업 범위 외, 별도 수정 필요