Files
sam-docs/changes/20260321_wip_inspection_report_fix.md

4.0 KiB

재공품 검사성적서 검사부위 공백 문제 수정

날짜: 2026-03-21 작업자: Claude Code

변경 개요

작업자화면에서 재공품(WIP) 절곡품의 검사성적서 보기 시 "검사 부위" 컬럼이 공백("-")으로 표시되는 문제를 수정했다. 근본 원인은 템플릿 컬럼 라벨 매칭 실패, WIP 감지 누락, 검사입력 데이터 구조 불일치 등 복합적이었다.

수정된 파일

React (sam/react)

파일 변경 내용
TemplateInspectionContent.tsx "검사 부위" 라벨 매칭 추가 ('부위' 조건), 도면치수 품목명에서 추출
WorkerScreen/index.tsx hasWipItems 판정 보완 (sidebar order fallback), 하단 버튼 분리 유지
InspectionInputModal.tsx bending_wip도 7제품 폼 사용, 도면치수 실제 길이 반영, 테스트입력 7제품 대응

API (sam/api)

이번 수정에서 API 변경 없음 (기존 API가 정상 동작)

상세 변경 사항

1. 템플릿 컬럼 "검사 부위" 라벨 매칭 (핵심)

  • 원인: TemplateInspectionContent가 bending 제품 렌더링 시 label.includes('분류') 또는 label.includes('제품명')만 체크
  • 문제: 재공품 템플릿의 컬럼 라벨이 "검사 부위"로 설정되어 있어 매칭 실패 → fallback "-" 표시
  • 수정: label.includes('부위') 조건 추가

2. hasWipItems 판정 보완

  • 원인: workItems.some(item => item.isWip)만 체크하는데, isWipwork_order_items.options.is_wip 의존
  • 문제: item options에 is_wip 미설정 시 재공품을 감지하지 못함
  • 수정: fallback으로 filteredWorkOrdersprojectName === '재고생산' 또는 salesOrderNo?.startsWith('STK') 체크

3. bending_wip 검사입력 7제품 폼 통합

  • 원인: bending_wip은 별도 간소화 폼 사용 (간격 입력 미연동, products 배열 미생성)
  • 문제: 검사 완료 시 products 배열 없이 저장 → 검사성적서에서 제품별 데이터 복원 불가
  • 수정: isBendingProcess 플래그로 bendingbending_wip을 동일 7제품 폼으로 통합

4. 도면치수 실제 품목 길이 반영

  • 원인: displayMap에 모든 길이가 '3000'으로 하드코딩
  • 문제: 2438mm 품목도 검사 입력/성적서에서 3000으로 표시
  • 수정: workItemDimensions.height (입력), order.items[0].productName에서 길이 추출 (성적서)

5. 테스트입력 버튼 7제품 대응

  • 원인: 테스트입력 핸들러가 formData만 채우고 bendingProducts 상태 미갱신
  • 수정: 테스트입력 시 7제품 모두 양호 + 도면치수 동일값 입력, 초기화 시 리셋

6. 하단 버튼 분리 유지

  • 원인: hasWipItems가 true가 되면 단일 버튼("작업일지 및 검사성적서")으로 전환되는 기존 로직
  • 수정: 재공품에서도 "작업일지 보기" + "검사성적서 보기" 두 개 버튼 유지

데이터 흐름 요약

검사 완료 버튼 (InspectionInputModal)
  ↓ handleComplete: products 배열 빌드 (7제품)
  ↓ saveItemInspection API: work_order_items.options.inspection_data에 저장
  ↓ 절곡 공정: 동일 WO의 모든 item에 자동 복제

검사성적서 보기 (InspectionReportModal)
  ↓ getInspectionReport API: inspection_data 조회
  ↓ getInspectionConfig API: 구성품 + gap_points 정의
  ↓ TemplateInspectionContent: bendingProducts 빌드 → 셀 값 복원 → 렌더링

테스트 체크리스트

  • 재공품 검사성적서 보기 시 검사부위 정상 표시
  • 재공품 검사 입력 시 7제품 폼 표시
  • 테스트입력 버튼 클릭 시 전체 적합 판정
  • 도면치수가 실제 품목 길이(2438mm 등) 반영
  • 하단 버튼 2개(작업일지/검사성적서) 분리 유지
  • 운영서버 배포 후 검증

관련 문서

  • rules/wip-production-policy.md — 재공품 생산 정책
  • frontend/api-specs/stock-production-api.md — 재고생산 API