차량 관리 (신규): - VehicleList/VehicleDetail: 차량 목록/상세 - ForkliftList/ForkliftDetail: 지게차 목록/상세 - VehicleLogList/VehicleLogDetail: 운행일지 목록/상세 - 관련 페이지 라우트 추가 (/vehicle-management/*) CEO 대시보드: - Enhanced 섹션 컴포넌트 적용 (아이콘 + 컬러 테마) - EnhancedStatusBoardSection, EnhancedDailyReportSection, EnhancedMonthlyExpenseSection - TodayIssueSection 개선 IntegratedDetailTemplate: - FieldInput, FieldRenderer 기능 확장 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
10 KiB
10 KiB
차량/지게차 메뉴 구현 계획
1. 개요
1.1 목적
5130 사이트(레거시)의 차량/지게차 메뉴를 SAM 프로젝트로 마이그레이션
1.2 메뉴 구조
📁 차량/지게차
├── 📄 차량관리 (vehicle)
├── 📄 차량일지/월간사진기록 (vehicle-log)
└── 📄 지게차 관리 (forklift)
1.3 페이지 구성 방식
| 페이지 | 리스트 | 등록 | 상세 | 수정 |
|---|---|---|---|---|
| 차량관리 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 |
| 차량일지 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 |
| 지게차 관리 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 | ✅ 페이지 |
1.4 사용할 공통 컴포넌트
| 페이지 타입 | 사용 템플릿 | 비고 |
|---|---|---|
| 리스트 | UniversalListPage | config 기반 |
| 등록/상세/수정 | IntegratedDetailTemplate | config 기반 |
구현 패턴:
config.ts → 컬럼/필드 정의
actions.ts → API 호출 (Server Actions)
index.tsx → 템플릿에 config 전달
2. 페이지별 상세 분석 (5130 사이트 기준)
2.1 차량관리 (vehicle)
| 항목 | 내용 |
|---|---|
| 페이지 타입 | 표준 CRUD (리스트 + 등록/상세/수정 페이지) |
| 레거시 URL | /car/list.php |
| 전체 건수 | 6건 (예시) |
리스트 테이블 컬럼 (12개):
| 순서 | 컬럼명 | 타입 | 설명 |
|---|---|---|---|
| 1 | 번호 | number | 행 번호 (1부터) |
| 2 | 차량번호 | string | 차량 식별번호 |
| 3 | 담당자 | string | 담당자명 |
| 4 | 보험사 | string | 보험 회사 |
| 5 | 보험만료일 | date | 보험 만료일 |
| 6 | 차량명 | string | 차량 이름 |
| 7 | 구입금액 | number | 구입 금액 |
| 8 | 구입일 | date | 구입 날짜 |
| 9 | 작성자 | string | 작성자명 |
| 10 | 정비정보 | string | 정비 관련 정보 |
| 11 | 등록일 | date | 등록 날짜 |
| 12 | 관리 | action | 상세/수정/삭제 버튼 |
2.2 차량일지/월간사진기록 (vehicle-log)
| 항목 | 내용 |
|---|---|
| 페이지 타입 | 표준 CRUD (리스트 + 등록/상세/수정 페이지) |
| 레거시 URL | /carrecord/list.php |
| 전체 건수 | 41건 (예시) |
리스트 테이블 컬럼 (5개):
| 순서 | 컬럼명 | 타입 | 설명 |
|---|---|---|---|
| 1 | 번호 | number | 행 번호 (1부터) |
| 2 | 작성일 | date | 작성 날짜 |
| 3 | 차량종류 | string | 차량 종류/타입 |
| 4 | 작성자 | string | 작성자명 |
| 5 | 글제목 | string | 일지 제목 |
2.3 지게차 관리 (forklift)
| 항목 | 내용 |
|---|---|
| 페이지 타입 | 표준 CRUD (리스트 + 등록/상세/수정 페이지) |
| 레거시 URL | /lift/list.php |
| 전체 건수 | 7건 (예시) |
리스트 테이블 컬럼 (13개, 차량관리 + 용량):
| 순서 | 컬럼명 | 타입 | 설명 |
|---|---|---|---|
| 1 | 번호 | number | 행 번호 (1부터) |
| 2 | 차량번호 | string | 지게차 식별번호 |
| 3 | 담당자 | string | 담당자명 |
| 4 | 보험사 | string | 보험 회사 |
| 5 | 보험만료일 | date | 보험 만료일 |
| 6 | 차량명 | string | 지게차 이름 |
| 7 | 구입금액 | number | 구입 금액 |
| 8 | 구입일 | date | 구입 날짜 |
| 9 | 작성자 | string | 작성자명 |
| 10 | 정비정보 | string | 정비 관련 정보 |
| 11 | 등록일 | date | 등록 날짜 |
| 12 | 용량 | string | 지게차 용량 ⭐ |
| 13 | 관리 | action | 상세/수정/삭제 버튼 |
3. 파일 구조
3.1 페이지 구조
src/app/[locale]/(protected)/
└── vehicle-management/ # 차량/지게차
├── vehicle/ # 차량관리
│ ├── page.tsx # 리스트
│ ├── new/
│ │ └── page.tsx # 등록
│ └── [id]/
│ ├── page.tsx # 상세
│ └── edit/
│ └── page.tsx # 수정
│
├── vehicle-log/ # 차량일지/월간사진기록
│ ├── page.tsx # 리스트
│ ├── new/
│ │ └── page.tsx # 등록
│ └── [id]/
│ ├── page.tsx # 상세
│ └── edit/
│ └── page.tsx # 수정
│
└── forklift/ # 지게차 관리
├── page.tsx # 리스트
├── new/
│ └── page.tsx # 등록
└── [id]/
├── page.tsx # 상세
└── edit/
└── page.tsx # 수정
3.2 컴포넌트 구조
src/components/vehicle-management/
├── VehicleList/
│ ├── index.tsx # UniversalListPage 사용
│ ├── actions.ts # Server Actions
│ └── config.ts # 컬럼/필터 설정
├── VehicleDetail/
│ ├── index.tsx # IntegratedDetailTemplate 사용
│ └── config.ts # 필드 설정
│
├── VehicleLogList/
│ ├── index.tsx
│ ├── actions.ts
│ └── config.ts
├── VehicleLogDetail/
│ ├── index.tsx
│ └── config.ts
│
├── ForkliftList/
│ ├── index.tsx
│ ├── actions.ts
│ └── config.ts
└── ForkliftDetail/
├── index.tsx
└── config.ts
4. API 엔드포인트 (예상)
| 기능 | Method | Endpoint |
|---|---|---|
| 차량 목록 | GET | /api/vehicle/list |
| 차량 상세 | GET | /api/vehicle/{id} |
| 차량 등록 | POST | /api/vehicle |
| 차량 수정 | PUT | /api/vehicle/{id} |
| 차량 삭제 | DELETE | /api/vehicle/{id} |
| 차량일지 목록 | GET | /api/vehicle-log/list |
| 차량일지 상세 | GET | /api/vehicle-log/{id} |
| 차량일지 등록 | POST | /api/vehicle-log |
| 차량일지 수정 | PUT | /api/vehicle-log/{id} |
| 차량일지 삭제 | DELETE | /api/vehicle-log/{id} |
| 지게차 목록 | GET | /api/forklift/list |
| 지게차 상세 | GET | /api/forklift/{id} |
| 지게차 등록 | POST | /api/forklift |
| 지게차 수정 | PUT | /api/forklift/{id} |
| 지게차 삭제 | DELETE | /api/forklift/{id} |
5. 구현 체크리스트
Phase 1: 리스트 페이지 & 컴포넌트
차량관리
- VehicleList/actions.ts ✅
- VehicleList/index.tsx ✅
- vehicle/page.tsx ✅
차량일지
- VehicleLogList/actions.ts ✅
- VehicleLogList/index.tsx ✅
- vehicle-log/page.tsx ✅
지게차 관리
- ForkliftList/actions.ts ✅
- ForkliftList/index.tsx ✅
- forklift/page.tsx ✅
Phase 2: 상세/등록/수정 페이지 & 컴포넌트
차량관리
- VehicleDetail/config.ts ✅
- VehicleDetail/index.tsx ✅
- vehicle/new/page.tsx (등록) ✅
- vehicle/[id]/page.tsx (상세) ✅
- vehicle/[id]/edit/page.tsx (수정) ✅
차량일지
- VehicleLogDetail/config.ts ✅
- VehicleLogDetail/index.tsx ✅
- vehicle-log/new/page.tsx (등록) ✅
- vehicle-log/[id]/page.tsx (상세) ✅
- vehicle-log/[id]/edit/page.tsx (수정) ✅
지게차 관리
- ForkliftDetail/config.ts ✅
- ForkliftDetail/index.tsx ✅
- forklift/new/page.tsx (등록) ✅
- forklift/[id]/page.tsx (상세) ✅
- forklift/[id]/edit/page.tsx (수정) ✅
Phase 3: 메뉴 및 테스트 URL 등록
- 사이드바 메뉴 추가 (차량/지게차) - 백엔드 메뉴 연동 필요
- /dev/test-urls에 등록 ✅
공통 파일
- types.ts (Vehicle, VehicleLog, Forklift 타입) ✅
6. 참고 스크린샷 (Desktop)
| 파일명 | 내용 |
|---|---|
| 5130_car_list.png | 차량관리 목록 |
| 5130_carrecord_list.png | 차량일지 목록 |
| 5130_lift_list.png | 지게차 관리 목록 |
7. 특이사항
-
차량 vs 지게차 핵심 차이점 (2025-01-28 확인):
- 차량: 보험사, 보험사 연락처, 엔진오일 교환 주기/일 사용
- 지게차: 구입업체, 구입업체 연락처, 부속품 교환 주기/일 사용
- 차종 필드에 용량 포함 (예: "3톤 디젤")
-
API 미확정: 백엔드 API가 아직 없을 수 있으므로 Mock 데이터로 우선 구현
-
번호 컬럼: 모든 테이블에서 1번부터 시작 (globalIndex 사용)
-
정비정보/월간사진: 상세 페이지에서 이미지 업로드 기능 필요할 수 있음
8. 컬럼 검증 결과 (2025-01-28)
8.1 차량관리 (vehicle) - ✅ 검증 완료
| 순서 | 레거시 컬럼명 | SAM 구현 | 상태 |
|---|---|---|---|
| 1 | 번호 | globalIndex | ✅ |
| 2 | 차량번호 | vehicleNumber | ✅ |
| 3 | 담당자 | manager | ✅ |
| 4 | 보험사 | insuranceCompany | ✅ |
| 5 | 보험사 연락처 | insuranceContact | ✅ |
| 6 | 최초등록일 | firstRegistrationDate | ✅ |
| 7 | 구매일자 | purchaseDate | ✅ |
| 8 | 구매 유형 | purchaseType | ✅ |
| 9 | 엔진오일 교환 주기 | oilChangeCycle | ✅ |
| 10 | 엔진오일교환일 | oilChangeDate | ✅ |
| 11 | 정비 정보 | maintenanceInfo | ✅ |
| 12 | 비고 | remarks | ✅ |
8.2 차량일지 (vehicle-log) - ✅ 검증 완료
| 순서 | 레거시 컬럼명 | SAM 구현 | 상태 |
|---|---|---|---|
| 1 | 번호 | globalIndex | ✅ |
| 2 | 작성일 | writeDate | ✅ |
| 3 | 차량종류 | vehicleType | ✅ |
| 4 | 작성자 | writer | ✅ |
| 5 | 글제목 | title | ✅ |
8.3 지게차 관리 (forklift) - ✅ 검증 완료
| 순서 | 레거시 컬럼명 | SAM 구현 | 상태 |
|---|---|---|---|
| 1 | 번호 | globalIndex | ✅ |
| 2 | 차량번호 | vehicleNumber | ✅ |
| 3 | 차종 | vehicleType | ✅ |
| 4 | 담당자 | manager | ✅ |
| 5 | 구입업체 | purchaseCompany | ✅ |
| 6 | 구입업체 연락처 | purchaseCompanyContact | ✅ |
| 7 | 최초등록일 | firstRegistrationDate | ✅ |
| 8 | 구매일자 | purchaseDate | ✅ |
| 9 | 구매 유형 | purchaseType | ✅ |
| 10 | 부속품 교환 주기 | partsChangeCycle | ✅ |
| 11 | 부속품 교환일 | partsChangeDate | ✅ |
| 12 | 정비 정보 | maintenanceInfo | ✅ |
| 13 | 비고 | remarks | ✅ |