diff --git a/INDEX.md b/INDEX.md index bff7aac..7fbf913 100644 --- a/INDEX.md +++ b/INDEX.md @@ -306,6 +306,7 @@ DB 도메인별: | [20260320_bank_balance_recalc_all_transactions.md](changes/20260320_bank_balance_recalc_all_transactions.md) | 계좌내역 잔액 재계산을 전체 거래에 적용 (표시 시점 계산) | | [20260320_sales_to_mng_rd_migration.md](dev/changes/20260320_sales_to_mng_rd_migration.md) | Sales → MNG 연구개발 메뉴 통합 이관 (11개 페이지) | | [20260320_daily_work_logs_codebridge_migration_fix.md](changes/20260320_daily_work_logs_codebridge_migration_fix.md) | 일일업무일지 codebridge DB 이관 누락 수정 (sam→codebridge 데이터 복구) | +| [20260321_process_duplicate_feature.md](changes/20260321_process_duplicate_feature.md) | 공정관리 공정 복제(복사) 기능 추가 (API+React) | --- diff --git a/changes/20260321_process_duplicate_feature.md b/changes/20260321_process_duplicate_feature.md new file mode 100644 index 0000000..cd14ee5 --- /dev/null +++ b/changes/20260321_process_duplicate_feature.md @@ -0,0 +1,64 @@ +# 공정관리 공정 복제(복사) 기능 추가 + +**날짜:** 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`