# 절곡품 작업단계 매핑 계획 > **작성일**: 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 = { '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