docs: [절곡] 작업단계 매핑 계획문서 추가
This commit is contained in:
136
dev/dev_plans/bending-work-step-mapping-plan.md
Normal file
136
dev/dev_plans/bending-work-step-mapping-plan.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# 절곡품 작업단계 매핑 계획
|
||||
|
||||
> **작성일**: 2026-03-20
|
||||
> **상태**: 설계 확정
|
||||
> **담당**: R&D실
|
||||
|
||||
---
|
||||
|
||||
## 1. 개요
|
||||
|
||||
### 1.1 목적
|
||||
|
||||
절곡 공정(P-003)의 작업단계가 모든 절곡 품목에 동일하게 표시되는 문제를 해결한다. BD 코드 접두사에 따라 해당 품목에 필요한 작업단계만 표시한다.
|
||||
|
||||
### 1.2 현재 문제
|
||||
|
||||
```
|
||||
현재: 모든 절곡 작업지시 → [가이드레일 제작, 케이스 제작, 하단마감재 제작, 검사]
|
||||
문제: BD-ST-24 (가이드레일 측면형)에 케이스/하단마감재 단계가 불필요하게 표시됨
|
||||
```
|
||||
|
||||
### 1.3 기대 결과
|
||||
|
||||
```
|
||||
BD-RS-30 (가이드레일 벽면) → [가이드레일 제작, 검사]
|
||||
BD-ST-24 (가이드레일 측면) → [가이드레일 제작, 검사]
|
||||
BD-CF-35 (케이스 전면부) → [케이스 제작, 검사]
|
||||
BD-CB-35 (케이스 린텔부) → [케이스 제작, 검사]
|
||||
BD-BL-35 (하단마감재 스크린) → [하단마감재 제작, 검사]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. BD 코드 분류 체계
|
||||
|
||||
### 2.1 코드 구조
|
||||
|
||||
```
|
||||
BD-{종류코드}{규격코드}-{길이코드}
|
||||
예: BD-RS-30 = BD + R(가이드레일) + S(측면형) + 30(길이)
|
||||
```
|
||||
|
||||
### 2.2 종류코드 → 작업단계 매핑
|
||||
|
||||
| 종류코드 접두사 | 제품 분류 | 필요 작업단계 |
|
||||
|:---:|---|---|
|
||||
| `R` | 가이드레일-벽면형 | `guide_rail`, `inspection` |
|
||||
| `S` | 가이드레일-측면형 | `guide_rail`, `inspection` |
|
||||
| `C` | 케이스 (린텔/전면/점검/후면) | `case`, `inspection` |
|
||||
| `B` | 하단마감재-스크린 | `bottom_finish`, `inspection` |
|
||||
| `T` | 하단마감재-철재 | `bottom_finish`, `inspection` |
|
||||
| `L` | L-Bar | `guide_rail`, `inspection` |
|
||||
| `G` | 연기차단재 | `guide_rail`, `inspection` |
|
||||
|
||||
---
|
||||
|
||||
## 3. 구현 방안: 프론트엔드 코드 매핑
|
||||
|
||||
### 3.1 선택 근거
|
||||
|
||||
| 방안 | 장점 | 단점 |
|
||||
|------|------|------|
|
||||
| ~~A. DB 규칙 기반~~ | 유연 | 마이그레이션, 관리 UI 필요 |
|
||||
| **B. 프론트엔드 코드 매핑** | 빠른 구현, 변경 용이 | BD 코드 체계 변경 시 수정 필요 |
|
||||
|
||||
BD 코드 체계가 안정적이고 종류가 7개로 한정되어 있어 프론트엔드 매핑이 적합하다.
|
||||
|
||||
### 3.2 구현 위치
|
||||
|
||||
| 파일 | 변경 내용 |
|
||||
|------|----------|
|
||||
| `react/src/components/production/WorkOrders/types.ts` | `BENDING_STEP_MAP` 상수 추가 |
|
||||
| `react/src/components/production/WorkOrders/WorkOrderDetail.tsx` | `ProcessStepPills`에 필터링 로직 적용 |
|
||||
|
||||
### 3.3 매핑 상수
|
||||
|
||||
```typescript
|
||||
// BD 코드 접두사 → 필요 작업단계 매핑
|
||||
const BENDING_STEP_MAP: Record<string, string[]> = {
|
||||
'R': ['guide_rail', 'inspection'], // 가이드레일-벽면
|
||||
'S': ['guide_rail', 'inspection'], // 가이드레일-측면
|
||||
'C': ['case', 'inspection'], // 케이스
|
||||
'B': ['bottom_finish', 'inspection'], // 하단마감재-스크린
|
||||
'T': ['bottom_finish', 'inspection'], // 하단마감재-철재
|
||||
'L': ['guide_rail', 'inspection'], // L-Bar
|
||||
'G': ['guide_rail', 'inspection'], // 연기차단재
|
||||
};
|
||||
```
|
||||
|
||||
### 3.4 필터링 로직
|
||||
|
||||
```
|
||||
1. 작업지시의 work_order_items에서 품목 코드(BD-XX-YY) 수집
|
||||
2. BD- 접두사 뒤의 첫 글자(종류코드)로 필요 단계 결정
|
||||
3. 여러 품목이 있으면 필요 단계의 합집합(union)으로 표시
|
||||
4. BD 코드가 아닌 품목이면 전체 단계 표시 (fallback)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 데이터 흐름
|
||||
|
||||
```
|
||||
API: WorkOrder → items[].item_code (BD-RS-30, BD-CF-35 등)
|
||||
↓
|
||||
React: transformApiToFrontend()
|
||||
↓ items에서 BD 코드 추출
|
||||
↓ BENDING_STEP_MAP으로 필요 단계 결정
|
||||
↓
|
||||
ProcessStepPills(filteredSteps)
|
||||
↓ 필요 단계만 렌더링
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 재고생산(STOCK)의 경우
|
||||
|
||||
재고생산은 단일 품목(BD-XX-YY)으로 생성되므로 매핑이 명확하다.
|
||||
|
||||
```
|
||||
STK202603180005 → BD-ST-24 (가이드레일 측면)
|
||||
→ 종류코드 'S' → ['guide_rail', 'inspection']
|
||||
→ 가이드레일 제작 + 검사 만 표시
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [재고생산 개편](stock-production-lot-form-plan.md) — 절곡품 LOT 방식
|
||||
- [입고×수입검사 연동](receiving-inspection-integration-plan.md) — 입고-검사-재고 흐름
|
||||
- [재공품 생산 정책](../../rules/wip-production-policy.md) — 재공품 개념
|
||||
|
||||
---
|
||||
|
||||
**최종 업데이트**: 2026-03-20
|
||||
Reference in New Issue
Block a user