2026-01-15 08:54:31 +09:00
|
|
|
# 변경 내용 요약
|
|
|
|
|
|
|
|
|
|
**날짜:** 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 완전 변환 |
|
refactor: [docs] 팀별 폴더 구조 재편 (공유/개발/프론트/기획)
- 개발팀 전용 폴더 dev/ 생성 (standards, guides, quickstart, changes, deploys, data, history, dev_plans 이동)
- 프론트엔드 전용 폴더 frontend/ 생성 (api/ → frontend/api-specs/)
- 기획팀 폴더 requests/ 생성
- plans/ → dev/dev_plans/ 이름 변경
- README.md 신규 (사람용 안내), INDEX.md 재작성 (Claude Code용)
- resources.md 신규 (노션 링크용, assets/brochure 이관 예정)
- CURRENT_WORKS.md 삭제, TODO.md → dev/ 이동
- 전체 참조 경로 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:46:03 +09:00
|
|
|
| `docs/dev_plans/sub/handover-report-plan.md` | 진행 상태 업데이트 |
|
2026-01-15 08:54:31 +09:00
|
|
|
|
|
|
|
|
## 🔧 상세 변경 사항
|
|
|
|
|
|
|
|
|
|
### 1. actions.ts 완전 재작성 (499줄)
|
|
|
|
|
|
|
|
|
|
**제거된 코드:**
|
|
|
|
|
- `MOCK_REPORTS` 배열 (7개 목업 데이터)
|
|
|
|
|
- `MOCK_REPORT_DETAILS` 객체 (상세 목업 데이터)
|
|
|
|
|
- 모든 목업 기반 로직
|
|
|
|
|
|
|
|
|
|
**추가된 코드:**
|
|
|
|
|
|
|
|
|
|
#### 헬퍼 함수
|
|
|
|
|
```typescript
|
|
|
|
|
// 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 작업 상태 갱신
|
|
|
|
|
- 마지막 업데이트 날짜 변경
|
|
|
|
|
|
|
|
|
|
## ✅ 검증 결과
|
|
|
|
|
|
|
|
|
|
- [x] TypeScript 타입 검사: 오류 없음
|
|
|
|
|
- [x] ESLint 검사: 오류 없음
|
|
|
|
|
- [x] 타입 정합성: types.ts와 완전 일치
|
|
|
|
|
|
|
|
|
|
## ⚠️ 알려진 이슈 (별도 작업 필요)
|
|
|
|
|
|
|
|
|
|
`HandoverReportListClient.tsx`에 기존 타입 불일치 존재:
|
|
|
|
|
- `partnerId` - HandoverReport 타입에 없음
|
|
|
|
|
- `contractManagerId` - HandoverReport 타입에 없음
|
|
|
|
|
- `constructionPMId` - HandoverReport 타입에 없음
|
|
|
|
|
|
|
|
|
|
→ 이번 작업 범위 외, 별도 수정 필요
|
|
|
|
|
|
|
|
|
|
## 🔗 관련 문서
|
|
|
|
|
|
|
|
|
|
- [상위 계획](../plans/construction-api-integration-plan.md)
|
|
|
|
|
- [세부 계획](../plans/sub/handover-report-plan.md)
|
|
|
|
|
- [API 백엔드](../../api/app/Services/Construction/HandoverReportService.php)
|