docs: [wip-policy] 자재 매칭(dynamic_bom) + 자동 완료 처리 섹션 추가

This commit is contained in:
김보곤
2026-03-22 18:08:26 +09:00
parent 992c52e165
commit 12b8d37a26

View File

@@ -172,7 +172,51 @@ orders 테이블
└─────────────────────────────────────────────────┘
```
### 4.4 일반 수주와의 차이
### 4.4 자재 매칭 (dynamic_bom)
재공품 생산에서 자재 투입 시 원자재를 자동 매칭하기 위해 **dynamic_bom**을 생성한다.
```
STOCK 주문 확정 (confirmAndCreateWorkOrders)
order.options.bending_lot에서 정보 추출
├─ prod_code (R/S/B/T/G/C)
├─ spec_code (M/S/C/D/T 등)
├─ length_code (24/30/35 등)
└─ material ("SUS 1.2T", "EGI 1.55T")
BendingInfoBuilder::buildDynamicBomForStockItem()
├─ partKey(품목명 파싱) → prefix(PrefixResolver) → BD 코드
├─ BD 코드 → items 테이블에서 item_id 조회
└─ DynamicBomEntry 생성
work_order_items.options.dynamic_bom에 저장
getMaterialsForItem() → dynamic_bom에서 자재 목록 조회
작업자 화면 자재 투입 모달에 원자재 LOT 표시
```
**기존 STOCK 호환**: `dynamic_bom`이 없는 기존 작업지시는 `bending_lot.material` 기반으로 RM 품목을 검색하는 fallback 로직이 동작한다.
**자재 투입 검색 필터**: 재공품 자재 투입 시 원자재(`item_type=RM`)만 검색되도록 프론트에서 자동 필터링한다.
### 4.5 작업 완료 자동 처리
모든 공정(슬랫/스크린/절곡)에서 작업 단계가 전부 완료되면 작업지시가 **자동으로 completed 상태**로 전환된다.
```
개소별 단계 완료 (toggleStepProgress)
autoCompleteWorkOrderIfAllStepsDone()
├─ 모든 step_progress가 completed인지 확인
├─ 미완료 step 자동 보정 (orphaned steps)
└─ 전체 완료 → work_order.status = 'completed'
프론트: work_order_status_changed 감지 → 작업 목록 새로고침
```
### 4.6 일반 수주와의 차이
| 항목 | 일반 수주 | 재공품 생산 |
|------|----------|-----------|
@@ -181,6 +225,7 @@ orders 테이블
| 견적 | 있음 (선택) | 없음 |
| 납기 | 고객 요청일 | 없음 (가능한 빨리) |
| 공정 선택 | BOM 기반 자동 매칭 | 절곡 공정 고정 |
| 자재 BOM | `buildDynamicBomForItem` (context+W+H) | `buildDynamicBomForStockItem` (bending_lot+partKey) |
| 금액/매출 | 계산 + 매출 인식 | 없음 |
| 현장명 | 고객 현장 | '재고생산' 고정 |
| 채번 | `ORD20260316xxxx` | `STK20260316xxxx` |
@@ -323,4 +368,4 @@ ATO: 수주 → 재공품 + 맞춤 부품 → 조립 → 출하
---
**최종 업데이트**: 2026-03-16
**최종 업데이트**: 2026-03-22