Files
sam-docs/projects/mes/v2-analysis/order-analysis/02-order-schema.md
hskwon 764a6470c6 MES 분석 문서 구조 정리: v1/v2 분리
- v1-analysis: 5130 레거시 기반 견적 분석 추가
- v2-analysis: 기존 MES 분석 문서들 이동
  - customer, master-data, order, price
  - production, production-userflow, quote, site
2025-12-19 15:37:59 +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 수주 섹션 - 비즈니스 로직, 상태 관리