# MNG 절곡 문서 React 매칭 계획 > **작성일**: 2026-03-05 > **목적**: MNG 절곡 문서(중간검사성적서 #36, 작업일지 #39)의 상세보기를 React와 동일하게 수정 > **상태**: 🔄 진행중 > **영향 범위**: mng만 (React/API 변경 없음) --- ## 현재 진행 상태 | 항목 | 내용 | |------|------| | **마지막 완료 작업** | Task 2.2: 절곡 작업일지 전용 렌더링 블록 추가 | | **다음 작업** | 브라우저 검증 (사용자 확인 필요) | | **진행률** | 5/6 (83%) | | **마지막 업데이트** | 2026-03-05 | --- ## 1. 개요 ### 1.1 배경 MNG(`mng.sam.kr/documents/36`, `/documents/39`)에서 절곡 문서의 상세보기가 React(`dev.sam.kr/production/worker-screen` > 절곡공정)와 다르다. - **MNG**: DB 템플릿(`document_templates`, `document_template_columns`)을 동적으로 읽어 범용 렌더링 - **React**: 전용 하드코딩 컴포넌트(`BendingInspectionContent.tsx`, `BendingWorkLogContent.tsx`)로 렌더링 React가 더 상세하고 정확하므로, MNG를 React에 맞춰 수정한다. ### 1.2 핵심 원칙 - MNG only 수정 (React/API 변경 없음) - DB 템플릿 컬럼 수정 + show.blade.php 전용 렌더링 블록 추가 - 기존 범용 렌더링 로직은 유지 (다른 문서에 영향 없도록) ### 1.3 변경 승인 정책 | 분류 | 예시 | 승인 | |------|------|------| | 즉시 가능 | blade 템플릿 수정, DB 시더/컬럼 업데이트 | 불필요 | | 컨펌 필요 | DocumentController 로직 변경, 새 쿼리 추가 | **필수** | | 금지 | 테이블 구조 변경, API 엔드포인트 변경 | 별도 협의 | --- ## 2. 차이점 분석 ### 2.1 중간검사성적서 (#36) - 중간검사 DATA 테이블 **React 컬럼 구조** (`BendingInspectionContent.tsx`): | 컬럼 | 타입 | 비고 | |------|------|------| | 분류 | text | KWE01 등 제품코드 | | 제품명 | text | 가이드레일, 케이스 등 | | 타입 | text | 벽면형, 측면형 등 | | 겉모양/절곡상태 | check | 양호/불량 체크 | | 길이 - 도면치수 | text | 설계값 | | 길이 - 측정값 | input | 입력값 | | 너비 - 도면치수 | text | 설계값 | | 너비 - 측정값 | input | 입력값 | | 간격 - 포인트 | text | 1~5 등 | | 간격 - 도면치수 | text | 설계값 | | 간격 - 측정값 | input | 입력값 | | 판정 | auto | 적/부 자동판정 | **핵심 차이**: - React는 **7개 제품** x **다중 gapPoints**(간격 측정점)로 rowSpan 사용 - MNG 현재 DB에는 "간격" 컬럼, "판정" 컬럼 없음 - MNG "분류/제품명"이 하나로 합쳐져 있을 수 있음 **React 제품 목록** (INITIAL_PRODUCTS): 1. 가이드레일 벽면형 (gapPoints: 5개) 2. 가이드레일 측면형 (gapPoints: 5개) 3. 케이스 (gapPoints: 2개) 4. 하단마감재 (gapPoints: 2개) 5. 하단L-BAR (gapPoints: 1개) 6. 연기차단재 W50 (gapPoints: 1개) 7. 연기차단재 W80 (gapPoints: 2개) ### 2.2 작업일지 (#39) - 절곡 전용 구조 **React 구조** (`BendingWorkLogContent.tsx`): ``` 헤더: "작업일지 (절곡)" + 문서번호/작성일자 + 결재란 신청업체/신청내용 테이블 (수주일, 현장명, 수주처, 작업일자, 담당자, LOT NO, 연락처, 생산담당자, 출고예정일) 제품 정보 테이블 (제품명, 재질, 마감, 유형) 4개 카테고리 섹션: 1. GuideRailSection (가이드레일 벽면형/측면형) 2. BottomBarSection (하단마감재) 3. ShutterBoxSection (셔터박스) 4. SmokeBarrierSection (연기차단재 W50/W80) 생산량 합계 [kg] (SUS/EGI) 비고 ``` **핵심 차이**: - MNG 현재: 범용 work_order_items 플랫 테이블 (line 137, 섹션 없는 문서) - React: 절곡 전용 4개 카테고리 섹션 + 제품정보 + 생산량합계 - React는 `bendingInfo` 데이터(work_order.options.bending_info)를 사용 - MNG Controller에서 bending_info를 아직 view에 전달하지 않음 --- ## 3. 작업 범위 ### Phase 1: 중간검사성적서 (#36) | # | 작업 항목 | 상태 | 비고 | |---|----------|:----:|------| | 1.1 | 현재 DB 템플릿 컬럼 조회 (tinker) | ✅ | template_id=60, 7컬럼 (간격/판정 포함) | | 1.2 | show.blade.php 절곡 검사 전용 렌더링 블록 추가 | ✅ | partials/bending-inspection-data.blade.php | | 1.3 | 브라우저 검증 | ⏳ | mng.sam.kr/documents/36 | ### Phase 2: 작업일지 (#39) | # | 작업 항목 | 상태 | 비고 | |---|----------|:----:|------| | 2.1 | DocumentController에 bending_info 전달 추가 | ✅ | work_order.options에서 추출 | | 2.2 | show.blade.php 절곡 작업일지 전용 렌더링 블록 추가 | ✅ | partials/bending-worklog.blade.php | | 2.3 | 브라우저 검증 | ⏳ | mng.sam.kr/documents/39 | --- ## 4. 상세 작업 내용 ### 4.1 Task 1.2: show.blade.php 절곡 검사 전용 블록 **위치**: `show.blade.php` 섹션 렌더링 영역 (line ~400) **조건**: template category가 '절곡' 또는 template name에 '절곡' 포함 **렌더링 구조**: ```html
| 분류 | 제품명 | 타입 | 겉모양/절곡상태 | 길이 | 너비 | 간격 | 판정 | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 도면치수 | 측정값 | 도면치수 | 측정값 | 포인트 | 도면치수 | 측정값 | |||||