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

**날짜:** 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)`만 체크하는데, `isWip`는 `work_order_items.options.is_wip` 의존
- **문제**: item options에 `is_wip` 미설정 시 재공품을 감지하지 못함
- **수정**: fallback으로 `filteredWorkOrders`의 `projectName === '재고생산'` 또는 `salesOrderNo?.startsWith('STK')` 체크

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

- **원인**: `bending_wip`은 별도 간소화 폼 사용 (간격 입력 미연동, products 배열 미생성)
- **문제**: 검사 완료 시 products 배열 없이 저장 → 검사성적서에서 제품별 데이터 복원 불가
- **수정**: `isBendingProcess` 플래그로 `bending`과 `bending_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 빌드 → 셀 값 복원 → 렌더링
```

## 테스트 체크리스트

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

## 관련 문서

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