docs: [changes] 재공품 검사성적서 검사부위 수정 변경이력

This commit is contained in:
김보곤
2026-03-21 21:19:54 +09:00
parent c2403b8a67
commit db85c23c23
2 changed files with 87 additions and 0 deletions

View File

@@ -312,6 +312,7 @@ DB 도메인별:
| [20260321_process_duplicate_feature.md](changes/20260321_process_duplicate_feature.md) | 공정관리 공정 복제(복사) 기능 추가 (API+React) |
| [20260321_bending_api_internal_url_fix.md](changes/20260321_bending_api_internal_url_fix.md) | Docker 환경 MNG→API 호출 internal_url 미적용 500 에러 수정 |
| [20260321_process_parent_id_tree.md](changes/20260321_process_parent_id_tree.md) | 공정관리 parent_id 트리 구조 도입 (2depth, 작업자 화면 그룹 탭) |
| [20260321_wip_inspection_report_fix.md](changes/20260321_wip_inspection_report_fix.md) | 재공품 검사성적서 검사부위 공백/도면치수/테스트입력 수정 |
---

View File

@@ -0,0 +1,86 @@
# 재공품 검사성적서 검사부위 공백 문제 수정
**날짜:** 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