5.5 KiB
5.5 KiB
재고생산관리
작성일: 2026-03-16 상태: 설계 확정
1. 개요
1.1 목적
수주 없이 재고 목적으로 생산하는 경우를 관리하는 기능이다.
SAM 시스템은 수주 → 작업지시 → 생산의 흐름으로 동작하므로, 수주가 없으면 작업지시를 생성할 수 없다. 재고생산관리는 내부 오더(Internal Order) 개념으로, 재고생산도 일종의 수주로 취급하여 기존 생산 흐름을 그대로 활용한다.
1.2 핵심 원칙
- 기존
orders테이블을 공유한다 (별도 테이블 없음) order_type_code = 'STOCK'으로 일반 수주(ORDER)와 구분한다- 하류 시스템(작업지시, 생산, 출하, 품질검사)은 변경 없이 동작한다
- 화면은 수주관리를 단순화한 형태이다
2. 수주관리와의 관계
2.1 테이블 공유 구조
orders 테이블
├── order_type_code = 'ORDER' → 수주관리 (거래처 주문)
├── order_type_code = 'PURCHASE' → 발주관리
└── order_type_code = 'STOCK' → 재고생산관리 (내부 오더)
2.2 기능 비교
| 항목 | 수주관리 (ORDER) | 재고생산관리 (STOCK) |
|---|---|---|
| 거래처 | ✅ 필수 | ❌ 불필요 |
| 견적 연결 | ✅ 가능 | ❌ 불필요 |
| 현장/납기/배송 | ✅ 사용 | ❌ 불필요 |
| 할인 | ✅ 적용 | ❌ 불필요 |
| 금액 계산 | ✅ 자동 | ❌ 불필요 (단가 0 가능) |
| 매출 인식 | ✅ 자동/수동 | ❌ 생성 안 함 |
| 개소/구역 (OrderNode) | ✅ N-depth 트리 | ❌ 불필요 |
| 품목 등록 | ✅ 상세 | ✅ 품목 + 수량만 |
| 작업지시 생성 | ✅ 동일 | ✅ 동일 |
| 생산/출하/품질검사 | ✅ 동일 | ✅ 동일 |
| 채번 접두사 | ORD |
STK |
2.3 재고생산 전용 필드
orders.options JSON에 재고생산 전용 속성을 저장한다:
| 필드 | 타입 | 설명 |
|---|---|---|
production_reason |
string | 생산 사유 (예: "시즌 대비", "안전재고 확보") |
target_stock_qty |
number | 목표 재고 수량 |
3. 업무 흐름
재고생산 등록 (DRAFT)
│ order_type_code = 'STOCK'
│ 품목 + 수량만 입력
↓
재고생산 확정 (CONFIRMED)
│ ※ 매출 생성 안 함 (일반 수주와 차이)
↓
생산지시 생성 (WorkOrder)
│ 기존 수주→생산지시 흐름 동일
↓
생산 실행 → 품질검사 → 출하
│ 기존 생산관리 흐름 동일
↓
완료 (COMPLETED)
4. 메뉴 위치
판매관리
├── 거래처관리
├── 견적관리
├── 수주관리
├── 재고생산관리 ← 신규
└── 단가관리
5. 재공품(WIP) 개념
재고생산의 대상 품목은 **재공품(Work-In-Process)**이다.
- 수주를 받지 않았지만, 회사 내에서 이미 정해진 절곡품을 미리 생산
- 작업자들의 유휴시간에 앞으로 나갈 물건을 미리 제작하는 행위
- 실제 수주가 들어오면 이미 만들어둔 재공품을 사용하여 납기 단축
유휴시간 → 재공품 미리 생산 → 재고 적재
↓
실제 수주 → 재고에서 재공품 사용 → 납기 단축
5.1 현재 구현 범위 (Phase 1)
- ✅ 재고생산 등록/목록/상세/수정/삭제
- ✅ 생산지시 생성 (절곡 공정 자동 선택)
- ✅ 생산지시 목록에 표시
- ✅ 작업지시 목록에 표시
- ✅ 생산현황판에 표시
- ✅ 작업실적 조회에 표시
5.2 향후 과제 (Phase 2)
작업자 화면 절곡 탭 — 재공품 사양 정보 연동
현재 STOCK 건은 OrderNode(개소)가 없어 BendingInfoBuilder가 동작하지 않는다. 절곡 작업자 화면에서 다음 정보가 누락된다:
| 누락 정보 | 원인 | 해결 방향 |
|---|---|---|
| W/H (가로/세로) | OrderNode.options 없음 | 품목 마스터에 규격 정보 보유 → 등록 시 가져오기 |
| bending_info | BendingInfoBuilder 실패 (rootNodes 없음) | 품목별 표준 BOM 활용 또는 수동 입력 |
| 동적 자재 목록 | dynamic_bom 미생성 | 품목별 표준 BOM에서 자재 목록 생성 |
| 제품코드 | nodeOptions 없음 | 품목 마스터의 item_code 활용 |
해결 전략: 재공품은 이미 정해진 규격품이므로, 품목관리의 품목 정보(규격, BOM)를
재고생산 등록 시 work_order_item.options에 채워넣는 방식으로 해결 가능.
6. API
기존 수주관리 API를 그대로 사용한다. order_type=STOCK 파라미터로 필터링한다.
상세 API 명세:
frontend/api-specs/stock-production-api.md
7. 영향범위 검토 결과
| 메뉴 | 수정 필요 | 비고 |
|---|---|---|
| 재고생산관리 (신규) | ✅ React 구현 | 수주 화면 단순화 |
| 생산지시 목록 | ⚠️ 소규모 | 납기/거래처 - 표시 (프론트) |
| 생산현황판 | ❌ 없음 | project_name='재고생산' 정상 표시 |
| 작업지시 목록 | ❌ 없음 | null fallback 처리 완비 |
| 작업실적 조회 | ❌ 없음 | Order 정보 미참조 |
| 작업자 화면 (절곡) | ⚠️ Phase 2 | bending_info/W/H 누락 (향후 과제) |
관련 문서
최종 업데이트: 2026-03-16