docs: [stock] 재고생산 자동 확정+생산지시 변경 이력 추가

This commit is contained in:
김보곤
2026-03-18 20:46:33 +09:00
parent 3e0995613b
commit 69f48e9a20
2 changed files with 107 additions and 0 deletions

View File

@@ -264,6 +264,7 @@ DB 도메인별:
| [20260318_nginx_file_upload_413_fix.md](changes/20260318_nginx_file_upload_413_fix.md) | 서비스 파일 업로드 413 오류 수정 (Nginx client_max_body_size 설정) |
| [20260318_receiving_inspection_attachment_bug.md](changes/20260318_receiving_inspection_attachment_bug.md) | 입고상세 수입검사 첨부파일 삭제 후 미갱신 버그 (React 수정 필요) |
| [20260318_bending_lot_codemap_update.md](changes/20260318_bending_lot_codemap_update.md) | 절곡품 LOT 코드맵 최신화 + 품목 222건 등록 + 일련번호 제거 |
| [20260318_stock_production_auto_confirm.md](changes/20260318_stock_production_auto_confirm.md) | 재고생산 자동 확정+생산지시 (3단계→1단계, 확정 버튼 제거) |
---

View File

@@ -0,0 +1,106 @@
# 재고생산 자동 확정+생산지시 구조 변경
**날짜:** 2026-03-18
**작업자:** Claude Code
## 변경 개요
재고생산의 3단계 프로세스(저장 → 확정 → 생산지시 생성)를 1단계(저장 = 즉시 생산지시)로 단축했다. 재고생산은 수주와 달리 별도 확정 절차가 불필요하다.
---
## 변경 배경
| 항목 | 기존 | 변경 후 |
|------|------|---------|
| 저장 | DRAFT 상태로 생성 | CONFIRMED → IN_PROGRESS (자동) |
| 확정 | 사용자가 수동 클릭 | 불필요 (삭제) |
| 생산지시 생성 | 확정 후 사용자가 수동 클릭 | 저장 시 자동 생성 |
| 단계 수 | 3단계 | 1단계 |
```
기존: 저장(DRAFT) ──→ 확정(CONFIRMED) ──→ 생산지시 생성(IN_PROGRESS)
변경: 저장 ──→ 확정+재고예약+생산지시 자동 ──→ IN_PROGRESS
```
---
## 수정된 파일
| 파일 | 변경 내용 |
|------|----------|
| `api/app/Services/OrderService.php` | `store()` 메서드에 STOCK 자동 확정+생산지시 로직 추가 |
---
## 상세 변경 사항
### OrderService::store() — STOCK 타입 후처리 추가
`store()` 메서드 마지막, 주문 생성 완료 후 `isStock` 조건 블록 추가:
```php
if ($isStock) {
// 1. 확정 처리 (DRAFT → CONFIRMED)
$order->status_code = Order::STATUS_CONFIRMED;
$order->save();
// 2. 재고 예약
$order->load('items');
app(StockService::class)->reserveForOrder($order->items, $order->id);
// 3. 생산지시 자동 생성
$this->createProductionOrder($order->id, []);
// 최종 상태 반영 (IN_PROGRESS)
$order->refresh();
}
```
**동작 순서:**
1. 주문 생성 (기존 로직 그대로)
2. 상태를 CONFIRMED로 변경
3. `StockService::reserveForOrder()`로 재고 예약
4. `createProductionOrder()`로 절곡 공정 작업지시 자동 생성
5. 최종 상태 IN_PROGRESS (createProductionOrder 내부에서 변경)
### 기존 로직 재활용
- `createProductionOrder()`의 STOCK 분기: 모든 품목을 "절곡" 공정에 직접 배정 (BOM 매칭 스킵)
- `reserveForOrder()`: 기존 updateStatus()에서 사용하던 재고 예약 로직과 동일
- 새 코드는 기존 메서드를 호출하므로, 향후 확정/생산지시 로직 변경 시 자동 반영
---
## React 프론트엔드 변경 요청
| 항목 | 설명 |
|------|------|
| "확정" 버튼 제거 | `StockProductionDetail.tsx` — draft 상태에서 확정 버튼 제거 |
| "생산지시 생성" 버튼 제거 | `StockProductionDetail.tsx` — confirmed 상태에서 생산지시 버튼 제거 |
| 저장 후 리다이렉트 | 저장 완료 → 상세 페이지로 이동 시 이미 IN_PROGRESS 상태 표시 |
| 상태 표시 조정 | DRAFT 상태가 목록에 노출되지 않을 수 있음 (저장 즉시 IN_PROGRESS) |
---
## 테스트 체크리스트
- [x] 재고생산 저장 시 상태가 IN_PROGRESS로 표시
- [ ] 생산지시(작업지시)가 자동으로 생성되는지 확인
- [ ] 절곡 공정에 품목이 정상 배정되는지 확인
- [ ] 재고 예약이 정상 동작하는지 확인
- [ ] 일반 수주(TYPE_ORDER)는 기존 흐름(DRAFT → 확정 → 생산지시) 유지
- [ ] React 화면에서 확정/생산지시 버튼 제거 확인 (프론트엔드 작업 후)
---
## 관련 문서
| 문서 | 설명 |
|------|------|
| [stock-production-api.md](../frontend/api-specs/stock-production-api.md) | 재고생산 API 명세 |
| [20260316_stock_production_order.md](../dev/changes/20260316_stock_production_order.md) | 재고생산 기능 최초 추가 |
---
**최종 업데이트**: 2026-03-18