65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
|
|
# 공정관리 공정 복제(복사) 기능 추가
|
||
|
|
|
||
|
|
**날짜:** 2026-03-21
|
||
|
|
**작업자:** Claude Code
|
||
|
|
|
||
|
|
## 변경 개요
|
||
|
|
|
||
|
|
공정 상세 페이지에서 기존 공정을 그대로 복제하는 기능을 추가한다. 하단 액션 바의 수정 버튼 왼쪽에 복사 버튼을 배치하며, 클릭 시 기본정보·분류규칙·품목연결·공정단계를 모두 복제한 새 공정을 생성한다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 수정된 파일
|
||
|
|
|
||
|
|
| 파일 | 변경 내용 |
|
||
|
|
|------|----------|
|
||
|
|
| `api/app/Services/ProcessService.php` | `duplicate()` 메서드 추가 (공정+규칙+품목+단계 복제) |
|
||
|
|
| `api/app/Http/Controllers/V1/ProcessController.php` | `duplicate()` 액션 추가 |
|
||
|
|
| `api/routes/api/v1/production.php` | `POST /processes/{id}/duplicate` 라우트 등록 |
|
||
|
|
| `react/src/components/process-management/actions.ts` | `duplicateProcess()` 서버 액션 추가 |
|
||
|
|
| `react/src/components/process-management/ProcessDetail.tsx` | 복사 버튼 UI 추가 (수정 버튼 왼쪽) |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 상세 변경 사항
|
||
|
|
|
||
|
|
### 1. API 엔드포인트
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /api/v1/processes/{id}/duplicate
|
||
|
|
```
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| 인증 | Bearer Token 필수 |
|
||
|
|
| 파라미터 | `id` (복제 대상 공정 ID) |
|
||
|
|
| 응답 | 새로 생성된 공정 데이터 (관계 포함) |
|
||
|
|
|
||
|
|
### 2. 복제 대상
|
||
|
|
|
||
|
|
| 항목 | 복제 여부 | 비고 |
|
||
|
|
|------|:--------:|------|
|
||
|
|
| 기본정보 | O | 공정명에 "(복사)" 접미사 추가 |
|
||
|
|
| 공정코드 | 신규 | `generateProcessCode()`로 새 코드 자동 생성 |
|
||
|
|
| 분류규칙 (pattern) | O | `process_classification_rules` 전체 복제 |
|
||
|
|
| 품목연결 (individual) | O | `process_items` 전체 복제 |
|
||
|
|
| 공정단계 | O | `process_steps` 전체 복제 (순서·옵션 포함) |
|
||
|
|
|
||
|
|
### 3. UI 변경
|
||
|
|
|
||
|
|
하단 sticky 액션 바 버튼 순서:
|
||
|
|
|
||
|
|
```
|
||
|
|
[목록으로] [삭제] [복사] [수정]
|
||
|
|
```
|
||
|
|
|
||
|
|
- `Copy` 아이콘 사용 (lucide-react)
|
||
|
|
- 복사 중 로딩 상태 표시 (`isDuplicating`)
|
||
|
|
- 복사 완료 시 새 공정 상세 페이지로 이동
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 관련 문서
|
||
|
|
|
||
|
|
- 공정관리 라우트: `api/routes/api/v1/production.php`
|