Files
sam-docs/projects/mes/order-analysis/02-order-schema.md
hskwon cf82d98258 docs: 수주관리 기획 분석 문서 및 UI 스크린샷 추가
- 메뉴 구조, 데이터 스키마, UI 분석, API 스펙 문서화
- 수주 목록/상세/등록/수정 화면 캡처 (11개)
- 생산지시 생성 화면 포함 (우선순위, 자재소요량, BOM)
2025-12-18 15:37:18 +09:00

155 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 수주 데이터 스키마 분석
> 분석 일시: 2024-12-18
> 소스: design/mes기획서_리액트/src/configs/orderMasterConfig.js
## 수주 유형 (entityTypes)
| ID | 코드 | 이름 | 설명 |
|----|------|------|------|
| 1 | NORMAL | 일반수주 | 견적 기반 일반 수주 |
| 2 | ADDITIONAL | 추가수주 | 기존 수주 추가분 |
| 3 | DIRECT | 직접수주 | 견적 없이 직접 입력 |
## 제품 카테고리 (생산공정 분류)
| ID | 코드 | 이름 |
|----|------|------|
| 1 | SCREEN | 스크린 |
| 2 | FOLD | 절곡 |
| 3 | SLAT | 슬랫 |
| 4 | ASSY | 조립 |
## 섹션 구조 (masterSections)
| ID | 키 | 이름 | 타입 | 설명 |
|----|-----|------|------|------|
| 1 | basicInfo | 기본정보 | general | 수주 기본 정보 |
| 2 | deliveryInfo | 납품정보 | general | 납품 관련 정보 |
| 3 | itemInfo | 품목정보 | **multiRow** | 수주 품목 목록 |
| 4 | productionSpec | 제작사양 | **multiRow** | 제작 상세 사양 |
| 5 | amountInfo | 금액정보 | general | 금액 합계 |
| 6 | etcInfo | 기타정보 | general | 기타 정보 |
---
## 필드 상세 (masterFields)
### 기본정보 (basicInfo)
| ID | 필드키 | 필드명 | 입력타입 | 필수 | 자동생성 | 설명 |
|----|--------|--------|----------|------|----------|------|
| 1 | orderNo | 수주번호 | text | ✅ | ✅ | 수주 식별 번호 |
| 2 | orderDate | 수주일 | date | ✅ | - | 수주 등록일 |
| 3 | quoteNo | 견적번호 | text | - | - | 연결된 견적번호 |
| 4 | customerName | 거래처명 | text | ✅ | - | 거래처명 |
| 5 | customerId | 거래처ID | text | - | - | 거래처 식별자 |
| 6 | siteName | 현장명 | text | ✅ | - | 설치 현장명 |
| 7 | manager | 담당자 | text | - | - | 거래처 담당자 |
| 8 | contact | 연락처 | text | - | - | 담당자 연락처 |
### 납품정보 (deliveryInfo)
| ID | 필드키 | 필드명 | 입력타입 | 필수 | 옵션 |
|----|--------|--------|----------|------|------|
| 10 | dueDate | 납기일 | date | ✅ | - |
| 11 | deliveryMethod | 배송방법 | select | - | 직접배차, 상차, 택배, 화물, 직접배송 |
| 12 | deliveryAddress | 납품주소 | text | - | - |
| 13 | receiverName | 수령자명 | text | - | - |
| 14 | receiverPhone | 수령자연락처 | text | - | - |
### 품목정보 (itemInfo) - 다중행
| ID | 필드키 | 필드명 | 입력타입 | 필수 | 옵션/검증 |
|----|--------|--------|----------|------|----------|
| 20 | productCode | 품목코드 | text | - | - |
| 21 | productName | 품목명 | select | ✅ | 국민방화스크린셔터, 방화셔터, 방연셔터 |
| 22 | category | 카테고리 | select | - | 스크린, 절곡, 슬랫, 조립 |
| 23 | floor | 층 | text | - | - |
| 24 | location | 위치 | text | - | - |
| 25 | openWidth | 개구폭(mm) | number | ✅ | min:500, max:15000 |
| 26 | openHeight | 개구높이(mm) | number | ✅ | min:500, max:10000 |
| 27 | qty | 수량 | number | ✅ | min:1 |
| 28 | unitPrice | 단가 | number | - | - |
| 29 | amount | 금액 | number | - | **자동계산** |
### 제작사양 (productionSpec) - 다중행
| ID | 필드키 | 필드명 | 입력타입 | 자동계산 | 옵션 |
|----|--------|--------|----------|----------|------|
| 30 | prodWidth | 제작폭(mm) | number | ✅ | 개구폭+140 |
| 31 | prodHeight | 제작높이(mm) | number | ✅ | MAX(개구높이+400, 2950) |
| 32 | guideRailType | 가이드레일형태 | select | - | 백면형, 양면형, 편면형 |
| 33 | guideRailSpec | 가이드레일규격 | select | - | 120-70, 150-80, 180-90 |
| 34 | finish | 마감 | select | - | SUS마감, 분체도장, 용융아연 |
| 35 | shaft | 샤프트 | number | ✅ | 폭>6000:5인치, 그외:4인치 |
| 36 | capacity | 전동용량 | number | ✅ | 폭>6000:300kg, 그외:160kg |
### 금액정보 (amountInfo)
| ID | 필드키 | 필드명 | 입력타입 | 자동계산 |
|----|--------|--------|----------|----------|
| 40 | totalAmount | 총금액 | number | ✅ (품목 금액 합계) |
### 기타정보 (etcInfo)
| ID | 필드키 | 필드명 | 입력타입 |
|----|--------|--------|----------|
| 50 | note | 비고 | textarea |
---
## 자동계산 규칙 (calculations)
| 필드 | 수식 | 설명 |
|------|------|------|
| prodWidth | `openWidth + 140` | 제작폭 = 개구폭 + 140 |
| prodHeight | `MAX(openHeight + 400, 2950)` | 제작높이 = MAX(개구높이+400, 2950) |
| shaft | `openWidth > 6000 ? 5 : 4` | 샤프트 인치 |
| capacity | `openWidth > 6000 ? 300 : 160` | 전동용량 kg |
| amount | `qty * unitPrice` | 금액 = 수량 × 단가 |
| totalAmount | `SUM(items.amount)` | 총금액 = 품목 금액 합계 |
---
## 페이지 템플릿
### 일반 수주 (order_normal)
- 경로: `/판매관리/수주_등록`
- 유형: NORMAL
- 섹션: 기본정보 → 납품정보 → 품목정보 → 제작사양 → 금액정보 → 기타정보
### 추가 수주 (order_additional)
- 경로: `/판매관리/수주_추가`
- 유형: ADDITIONAL
- 섹션: 기본정보(간소화) → 추가 품목 → 기타정보
---
## API 엔드포인트 추정
### 수주 CRUD
```
GET /api/orders - 수주 목록
GET /api/orders/{id} - 수주 상세
POST /api/orders - 수주 등록
PUT /api/orders/{id} - 수주 수정
DELETE /api/orders/{id} - 수주 삭제
```
### 관련 API
```
GET /api/orders/{id}/items - 수주 품목 목록
POST /api/orders/{id}/items - 품목 추가
PUT /api/orders/{id}/items/{itemId} - 품목 수정
DELETE /api/orders/{id}/items/{itemId} - 품목 삭제
POST /api/orders/from-quote/{quoteId} - 견적에서 수주 전환
```
---
## 다음 분석 단계
1. QuoteDetailNew.jsx, QuoteDocumentDialogs.jsx - UI 구조 및 액션
2. App.jsx 수주 섹션 - 비즈니스 로직, 상태 관리