From 91e248eeab8626d611b72fcbbd55e2d53cc46f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Mon, 16 Mar 2026 10:19:53 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[plans]=20=EC=A0=88=EA=B3=A1=ED=92=88?= =?UTF-8?q?=20=EA=B4=80=EB=A6=AC=20=ED=98=84=ED=99=A9=20=EB=B6=84=EC=84=9D?= =?UTF-8?q?=20=EB=AC=B8=EC=84=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 경동기업(5130) vs SAM 시스템 절곡품 관리 비교 - BD-XX-XXX 코드 체계, 갭 분석, 데이터 흐름 정리 --- dev/dev_plans/bending-parts-analysis.md | 302 ++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 dev/dev_plans/bending-parts-analysis.md diff --git a/dev/dev_plans/bending-parts-analysis.md b/dev/dev_plans/bending-parts-analysis.md new file mode 100644 index 0000000..b53e7e0 --- /dev/null +++ b/dev/dev_plans/bending-parts-analysis.md @@ -0,0 +1,302 @@ +# 절곡품(Bending Parts) 관리 현황 분석 + +> **작성일**: 2026-03-16 +> **분류**: 갭 분석 / 기능 비교 +> **대상**: 경동기업(5130) 가이드레일 시스템 vs SAM 시스템 + +--- + +## 배경 및 질문 + +경동기업(5130)에는 절곡품(가이드레일) 관리 리스트가 있다. +(`5130.codebridge-x.com/guiderail/list.php`) + +견적/수주를 하면 해당 제품의 가이드레일을 불러와 **이미지들을 보여주는** 역할을 하며, +개별 절곡품들을 **조합**하여 가이드레일을 구성하는 구조이다. + +SAM 시스템에서도 견적(`dev.sam.kr/sales/quote-management/new`)에서 가이드레일이 나오는데, +경동기업과 같이 **절곡품 이미지를 보여주고 조합**할 수 있어야 한다. + +### 구체적 질문 + +1. SAM의 `items` 테이블에 `BD-XX-XXX` 코드 품목들이 있는데, 경동기업 절곡품처럼 **이미지 표현과 조합 구성이 가능한 상태인가?** +2. 초기 개발 시 절곡품을 고려하지 않고 개발 후 추후 items에 밀어넣었는데, **경동기업 수준의 관리가 되고 있는가?** +3. 경동기업 절곡품 시스템과 SAM 시스템 간 **갭은 무엇인가?** + +--- + +## 1. 경동기업(5130) 절곡품 관리 체계 + +### 1.1 시스템 구조 + +``` +bending 테이블 (개별 절곡품) + ├─ 품명, 대분류(스크린/철재), 중분류(가이드레일/케이스/하단마감재) + ├─ 규격(120*70), 재질(SUS 1.2T), 모델명(KSS01) + ├─ 인정/비인정 구분 + ├─ 치수 JSON (inputList), 연신율 JSON (bendingrateList) + ├─ 합계 JSON (sumList), 색상 마킹 (colorList) + └─ 검색 키워드 (130x75한빛, 주일-130x70 등) + +guiderail 테이블 (조합 전개도) + ├─ 모델별 부품 조합 정의 (proditem1~8) + ├─ 전개도 이미지 저장 + └─ 견적에서 호출되어 이미지 표시 +``` + +### 1.2 주요 기능 + +| 기능 | 구현 파일 | 설명 | +|------|----------|------| +| 절곡품 마스터 리스트 | `guiderail/list.php` | 22개 모델 정의, CRUD 관리 | +| 절곡품 이미지 관리 | `put_guiderail_image.php` | 이미지 업로드 + Canvas 드로잉 (`drawingTool.js`) | +| 모델별 부품 조합 | `fun_guiderail.php` | KSS01 등 모델마다 1~8개 부품 조합 (`getProductData()`) | +| 절곡품 검색 | `search_bending.php` | 대분류/규격/재질/인정여부 복합 필터 | +| 견적에서 호출 | `fetch_guiderail_detail.php` | 견적 시 해당 모델의 이미지 + 부품 표시 | +| 메타데이터 | `guiderail.json` | 22개 모델 정의 (이미지 경로, 분류, 마감 유형) | + +### 1.3 모델별 부품 조합 예시 (KSS01 벽면형) + +``` +proditem1: ①②마감재 (SUS 1.2T, 수량2) +proditem2: ③본체 (EGI 1.55T, 수량1) +proditem3: ④벽면형-C (EGI 1.55T, 수량1) +proditem4: ⑤벽면형-D (EGI 1.55T, 수량1) +``` + +### 1.4 이미지 관리 + +- **저장 경로**: `/5130/guiderail/images/`, `/5130/bending/img/` +- **파일명 규칙**: `YYYY_MM_DD_HH_MM_SS_[모델명].png` +- **드로잉 도구**: Canvas 기반 `drawingTool.js`로 실시간 전개도 생성 + +### 1.5 bending 테이블 주요 컬럼 + +| 컬럼 | 설명 | 예시 | +|------|------|------| +| `itemName` | 품명 | 가이드레일 | +| `item_sep` | 대분류 | 스크린, 철재 | +| `item_bending` | 중분류 | 가이드레일, 케이스, 하단마감재 | +| `item_spec` | 규격 | 120*70, 120*120 | +| `material` | 재질 | SUS 1.2T, EGI 1.55T | +| `model_UA` | 인정여부 | 인정, 비인정 | +| `model_name` | 모델명 | KSS01, KWE01, KQTS01 | +| `search_keyword` | 검색어 | 130x75한빛 | +| `inputList` | 치수 JSON | [...] | +| `bendingrateList` | 연신율 JSON | [...] | +| `sumList` | 합계 JSON | [...] | +| `colorList` | 색상 마킹 JSON | [...] | +| `rail_width` | 레일 폭 | 70, 120 | + +--- + +## 2. SAM 시스템 현재 상태 + +### 2.1 BD-XX-XXX 코드 체계 + +`BendingItemSeeder`로 ~40개 품목이 `items` 테이블에 등록되어 있다. + +**코드 구조**: `BD-{PREFIX}-{LENGTH_CODE}` + +| PREFIX | 용도 | 예시 | +|--------|------|------| +| RS/RE | 가이드레일 마감재 (벽면) | BD-RS-30 | +| SS/SE | 가이드레일 마감재 (측면) | BD-SS-35 | +| RM | 가이드레일 본체 (벽면) | BD-RM-42 | +| SM | 가이드레일 본체 (측면) | BD-SM-24 | +| RC/RD | 가이드레일 C형/D형 (벽면) | BD-RC-30 | +| BS/TS | 하단마감재 (SUS/철재) | BD-BS-40 | +| LA | L-Bar | BD-LA-40 | +| HH | 보강평철 | BD-HH-30 | +| CF/CL/CP/CB | 셔터박스 부품 | BD-CF-35 | +| GI | 연기차단재 | BD-GI-54 | +| XX | 하부BASE/상부덮개/마구리 (공용) | BD-XX-35 | +| YY | 별도마감 | BD-YY-30 | + +**길이코드 매핑**: + +| 코드 | mm | 코드 | mm | +|------|-----|------|-----| +| 12 | 1219 | 40 | 4000 | +| 24 | 2438 | 41 | 4150 | +| 30 | 3000 | 42 | 4200 | +| 35 | 3500 | 43 | 4300 | + +### 2.2 items 테이블 저장 구조 + +```json +{ + "item_type": "PT", + "item_category": "BENDING", + "code": "BD-RS-30", + "name": "가이드레일 마감재 3000mm", + "options": { + "source": "bending_item_seeder", + "lot_managed": true, + "consumption_method": "auto", + "production_source": "self_produced", + "input_tracking": true, + "prefix": "RS", + "length_code": "30", + "length_mm": 3000 + } +} +``` + +### 2.3 SAM에서 구현된 기능 + +| 기능 | 파일 | 설명 | +|------|------|------| +| 동적 BOM 생성 | `BendingInfoBuilder.php` (1172줄) | 제품코드별 자동 부품 조합 | +| Prefix 자동 결정 | `PrefixResolver.php` (300줄) | BD-코드 자동 매핑 | +| 작업지시서 절곡 표시 | `GuideRailSection` 등 (React) | 가이드레일/하단마감재/셔터박스/연기차단재 테이블 | +| 절곡 검사 (Phase 3) | `inspection-config` API | 공정 자동 판별, BOM 기반 구성품 로딩 | +| 정적 이미지 | `api/public/images/bending/` | 22개 이미지 (6개 모델 × 벽면/측면) | +| 재질 매핑 | `BendingInfoBuilder` | 제품코드별, 마감재질별 자동 결정 | + +### 2.4 데이터 흐름 + +``` +Quote (견적) + └─ calculation_inputs: { items[], bomResults[] } + ↓ OrderService::store() +OrderNode (개소별) + └─ options: { product_code, bom_result } + ↓ OrderService::createWorkOrders() +WorkOrder (작업지시) + └─ work_order_items[].options: { + bending_info: { + productCode, finishMaterial, + guideRail: { wall, side }, + bottomBar, shutterBox, smokeBarrier + }, + slat_info: { joint_bar, glass_qty } + } + ↓ 프론트 렌더링 +작업일지 + ├─ 가이드레일 (이미지 + 테이블) + ├─ 하단마감재 + ├─ 셔터박스 + └─ 연기차단재 +``` + +--- + +## 3. 갭 분석 + +### 3.1 핵심 갭 (경동기업에 있고 SAM에 없는 것) + +#### 🔴 ① 절곡품 마스터 관리 화면 + +| 항목 | 경동기업(5130) | SAM | +|------|--------------|-----| +| 관리 화면 | `guiderail/list.php` — CRUD | ❌ 없음 | +| 필터링 | 대분류/규격/재질/인정여부 복합 필터 | ❌ 없음 | +| 검색 | 키워드 기반 통합 검색 | ❌ 없음 | + +BD-XX-XXX 품목이 `items` 테이블에 등록만 되어 있고, **절곡품 전용 관리 화면이 없다.** + +#### 🔴 ② 견적 시 가이드레일 이미지 표시 + +| 항목 | 경동기업(5130) | SAM | +|------|--------------|-----| +| 견적 화면 | 모델 선택 → 전개도 이미지 + 부품 조합 표시 | ❌ 이미지 미표시 | +| 호출 방식 | `fetch_guiderail_detail.php` | 해당 기능 없음 | + +견적 페이지(`/sales/quote-management/new`)에서 가이드레일 선택은 되지만 **이미지가 표시되지 않는다.** + +#### 🔴 ③ 절곡품 개별 전개도 데이터 + +| 항목 | 경동기업(5130) | SAM | +|------|--------------|-----| +| 치수 데이터 | `inputList` JSON | ❌ 없음 | +| 연신율 데이터 | `bendingrateList` JSON | ❌ 없음 | +| 합계 계산 | `sumList` JSON | ❌ 없음 | +| 색상 마킹 | `colorList` JSON | ❌ 없음 | +| 전개도 드로잉 | Canvas 기반 실시간 생성 | ❌ 없음 | + +`BendingInfoBuilder`는 **조합 로직만** 있고, 개별 절곡품의 전개도 상세 데이터는 저장되지 않는다. + +### 3.2 보조 갭 + +#### 🟡 ④ 절곡품 속성 풍부도 + +| 속성 | 경동기업 `bending` 테이블 | SAM `items.options` | +|------|------------------------|---------------------| +| 품명 | ✅ `itemName` | ✅ `name` | +| 대분류 | ✅ `item_sep` (스크린/철재) | ❌ 없음 | +| 중분류 | ✅ `item_bending` (가이드레일/케이스) | ❌ 없음 | +| 규격 | ✅ `item_spec` (120*70) | ❌ 없음 | +| 재질 | ✅ `material` (SUS 1.2T) | ❌ 없음 | +| 모델명 | ✅ `model_name` (KSS01) | ❌ 없음 | +| 인정여부 | ✅ `model_UA` | ❌ 없음 | +| 검색키워드 | ✅ `search_keyword` | ❌ 없음 | +| 레일 폭 | ✅ `rail_width` | ❌ 없음 | +| prefix | ❌ | ✅ `options.prefix` | +| 길이코드 | ❌ | ✅ `options.length_code` | +| 길이(mm) | ❌ | ✅ `options.length_mm` | + +#### 🟡 ⑤ 이미지 업로드/드로잉 기능 + +| 항목 | 경동기업(5130) | SAM | +|------|--------------|-----| +| 이미지 업로드 | ✅ `put_guiderail_image.php` | ❌ 없음 | +| Canvas 드로잉 | ✅ `drawingTool.js` | ❌ 없음 | +| 이미지 저장 | 동적 생성 + 파일 저장 | 정적 파일 22개만 | + +### 3.3 SAM이 우위인 부분 + +| 영역 | 설명 | +|------|------| +| 동적 BOM | `BendingInfoBuilder`가 제품코드별 자동 조합 (5130은 하드코딩) | +| Prefix 체계 | `PrefixResolver`로 BD-코드 자동 결정 (5130은 수동) | +| 작업지시 연동 | `work_order_items.options.bending_info`로 구조화된 데이터 전달 | +| 검사 동적 구현 | Phase 3에서 API 기반 검사 완료 (5130보다 진보적) | +| 멀티테넌시 | 테넌트별 독립 관리 가능 (5130은 단일) | + +--- + +## 4. 종합 비교 + +``` +경동기업(5130) SAM 시스템 +───────────────────────────── ───────────────────────────── +[절곡품 마스터 관리] ─────────────→ ❌ 없음 (items에 등록만) + ├─ 이미지/전개도 관리 ├─ 정적 이미지 22개만 + ├─ 치수/연신율 데이터 ├─ ❌ 없음 + ├─ 검색/필터 └─ ❌ 없음 + └─ CRUD 화면 + +[가이드레일 조합] ───────────────→ ✅ BendingInfoBuilder (더 체계적) + ├─ 모델별 부품 정의 ├─ ✅ 동적 BOM 생성 + ├─ 재질 자동 매핑 ├─ ✅ PrefixResolver + └─ 견적에서 이미지 표시 └─ ❌ 이미지 미표시 + +[절곡 검사] ─────────────────────→ ✅ Phase 3 완료 (더 진보적) + ├─ 중간검사 ├─ ✅ inspection-config API + └─ 하드코딩 검사 └─ ✅ 동적 검사 +``` + +--- + +## 5. 결론 + +**SAM은 절곡품의 "계산과 조합"은 잘 되어 있지만, "관리와 시각화"가 빠져 있다.** + +경동기업처럼 절곡품을 독립적으로 관리하고 견적에서 이미지를 보여주려면, +**절곡품 마스터 관리 기능**을 새로 구현해야 한다. + +### 필요 작업 (예상) + +1. **절곡품 마스터 관리 화면** — mng 또는 react에 CRUD + 필터링 +2. **items.options 속성 확장** — 대분류, 중분류, 규격, 재질, 모델명 등 +3. **견적 화면 이미지 연동** — 모델 선택 시 가이드레일 전개도 이미지 표시 +4. **전개도 데이터 구조** — 치수/연신율/합계 JSON 저장 방안 설계 +5. **이미지 업로드 기능** — 절곡품별 전개도 이미지 관리 + +### 관련 문서 + +- 통합 마스터 플랜: `docs/dev/dev_plans/integrated-master-plan.md` +- Phase 2 (절곡 분석/설계): `docs/dev/dev_plans/integrated-phase-2.md` +- Phase 3 (절곡 검사, 완료): `docs/dev/dev_plans/integrated-phase-3.md` +- 품목 정책: `docs/rules/item-policy.md` \ No newline at end of file