# 수입검사 성적서 양식 생성 계획

> **작성일**: 2026-02-05
> **목적**: 5130 레거시 수입검사 양식 23종을 SAM 문서 양식으로 전환
> **기준 문서**: 5130/instock/i_*.php (23개 파일)
> **상태**: 📋 계획 수립 완료 (Serena ID: incoming-inspection-plan-state)

---

## 🚀 새 세션 시작 가이드 (Quick Start)

### 이 문서만 보고 작업을 시작하려면:

**1단계: 환경 확인**
```bash
# Docker 컨테이너 실행 확인
docker ps | grep sam

# 품목 데이터 확인 (tenant_id=287)
cd /Users/kent/Works/@KD_SAM/SAM/api
php artisan tinker --execute="echo 'RM: ' . DB::table('items')->where('tenant_id', 287)->where('item_type', 'RM')->count() . ', SM: ' . DB::table('items')->where('tenant_id', 287)->where('item_type', 'SM')->count();"
# 기대값: RM: 28, SM: 61

# 기존 양식 확인 (EGI template 18)
php artisan tinker --execute="echo DB::table('document_templates')->where('id', 18)->value('name');"
```

**2단계: 현재 상태 확인**
- 아래 "📍 현재 진행 상태" 섹션에서 마지막 완료 작업과 다음 작업 확인
- Phase 1-5 테이블에서 ⏳/✅ 상태 확인

**3단계: 양식 생성 시작**
- MNG 접속: https://mng.sam.kr/document-templates
- 기존 EGI 양식(id:18) 복제하여 새 양식 생성
- 또는 새 양식 생성: https://mng.sam.kr/document-templates/create

### 환경 정보

| 항목 | 값 |
|------|-----|
| **프로젝트 루트** | `/Users/kent/Works/@KD_SAM/SAM` |
| **레거시 소스** | `5130/instock/i_*.php` (23개 파일) |
| **API 프로젝트** | `api/` |
| **MNG 프로젝트** | `mng/` |
| **tenant_id** | `287` (경동기업) |
| **MNG URL** | https://mng.sam.kr |
| **API URL** | https://api.sam.kr |

### 핵심 테이블 및 ID

| 테이블 | 용도 | 주요 ID |
|--------|------|---------|
| `document_templates` | 양식 마스터 | id:18 (EGI 수입검사 - 참조용) |
| `document_template_section_fields` | 검사항목 필드 정의 | template_id 기준 |
| `document_template_links` | 품목 연결 정의 | template_id 기준 |
| `document_template_link_values` | 연결된 품목 ID | link_id, linkable_id |
| `items` | 품목 마스터 | tenant_id=287 기준 |

### 품목 검색 쿼리

```bash
# RM(원자재) 전체 조회
php artisan tinker --execute="DB::table('items')->where('tenant_id', 287)->where('item_type', 'RM')->whereNull('deleted_at')->select('id','code','name')->get()->each(fn(\$i) => print(\$i->code.' | '.\$i->name.'\n'));"

# SM(부자재) 전체 조회
php artisan tinker --execute="DB::table('items')->where('tenant_id', 287)->where('item_type', 'SM')->whereNull('deleted_at')->select('id','code','name')->get()->each(fn(\$i) => print(\$i->code.' | '.\$i->name.'\n'));"

# 특정 품목 검색 (예: SUS)
php artisan tinker --execute="DB::table('items')->where('tenant_id', 287)->where('name', 'like', '%sus%')->whereNull('deleted_at')->select('id','code','name','item_type')->get()->each(fn(\$i) => print(\$i->item_type.' | '.\$i->code.' | '.\$i->name.'\n'));"
```

### API 테스트

```bash
# resolve API 테스트 (품목별 양식 조회)
curl -X GET "https://api.sam.kr/api/v1/documents/resolve?item_id=12345" \
  -H "Authorization: Bearer {token}" \
  -H "X-API-KEY: {api_key}"

# upsert API 테스트 (문서 생성/수정)
curl -X POST "https://api.sam.kr/api/v1/documents/upsert" \
  -H "Authorization: Bearer {token}" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{"template_id": 18, "linkable_type": "item", "linkable_id": 12345, ...}'
```

### 레거시 파일 분석 방법

```bash
# 특정 양식 파일 읽기 (예: SUS 절곡코일)
cat /Users/kent/Works/@KD_SAM/SAM/5130/instock/i_SUScoil.php

# 검사항목 구조 확인 (itemRow, resultRow 배열)
grep -A 20 "itemRow" /Users/kent/Works/@KD_SAM/SAM/5130/instock/i_SUScoil.php
```

---

## 📍 현재 진행 상태

| 항목 | 내용 |
|------|------|
| **마지막 완료 작업** | Phase 1-5 완료 - 13종 양식 생성 (id:18~30), EGI 품목 연결 |
| **다음 작업** | 품목 미등록 양식 대기 (SS400, 베어링부, 내화충진재, 세라크울) |
| **진행률** | 19/23 (83% 완료) - 4종 품목 미등록 |
| **마지막 업데이트** | 2026-02-05 |

---

## 1. 개요

### 1.1 배경

5130 레거시 시스템에는 23종의 수입검사 성적서 양식이 PHP 파일로 하드코딩되어 있음. 이를 SAM의 동적 문서 양식 시스템으로 전환하여:
- React 앱에서 품목별 자동 양식 매칭 가능
- 검사 데이터의 체계적 관리 및 이력 추적
- 양식 수정/추가 시 코드 변경 불필요

### 1.2 기준 원칙
```
┌─────────────────────────────────────────────────────────────────┐
│  🎯 핵심 원칙                                                   │
├─────────────────────────────────────────────────────────────────┤
│  1. 레거시 양식 구조 100% 재현 (검사항목, 기준, 측정방식)        │
│  2. 품목 자동 매칭 (item_id → template 연결)                    │
│  3. Auto-highlight 지원 (두께/너비/길이 기준범위 자동 표시)      │
│  4. 프리셋 재사용 (공통 필드 구조 활용)                         │
└─────────────────────────────────────────────────────────────────┘
```

### 1.3 변경 승인 정책

| 분류 | 예시 | 승인 |
|------|------|------|
| ✅ 즉시 가능 | 양식 생성, 품목 연결, 검사항목 추가 | 불필요 |
| ⚠️ 컨펌 필요 | 새로운 field_type 추가, 프리셋 수정 | **필수** |
| 🔴 금지 | 기존 양식(template 18) 구조 변경 | 별도 협의 |

---

## 2. 5130 레거시 분석 결과

### 2.1 파일-품명 매핑 (23종)

| # | 파일명 | 품명 (itemTitle) | 품목 유형 | 규격 형식 |
|---|--------|------------------|-----------|-----------|
| 1 | i_EGI155.php | 전기 아연도금 강판 (KS D 3528, SECC) "EGI 절곡판" | RM | 두께*너비*길이 |
| 2 | i_GIplate.php | 용융 아연도금 강판 (KS D 3506, SGCC) "GI 절곡판" | RM | 두께*너비*길이 |
| 3 | i_SUScoil.php | 냉간 압연 스테인리스 강대 (KS D 3698, STS304) "SUS 절곡코일" | RM | 두께*너비 |
| 4 | i_SUSplate.php | 냉간 압연 스테인리스 강판 (KS D 3698, STS304) "SUS 절곡판" | RM | 두께*너비*길이 |
| 5 | i_slatcoil.php | 전기 아연도금 강대 (KS D 3528, SECC) "슬랫코일" | RM | 두께*너비 |
| 6 | i_bendingcoil.php | 전기 아연도금 강대 (KS D 3528, SECC) "절곡코일" | RM | 두께*너비 |
| 7 | i_angle.php | 일반구조용 압연강재 (JIS G 3101, SS400) "앵글" | SM | A*B*T |
| 8 | i_anglebottom.php | 일반구조용 압연강재 (JIS G 3101, SS400) "앵글하부" | SM | A*B*T |
| 9 | i_platesteel.php | 일반구조용 압연강재 (JIS G 3101, SS400) "철판" | RM | 두께*너비*길이 |
| 10 | i_pole.php | 일반구조용 압연강재 (JIS G 3101, SS400) "마환봉" | SM | 직경 |
| 11 | i_recpipe.php | 일반 구조용 각형 강관 (KS D 3568) "각파이프" | SM | A*B*T |
| 12 | i_shaft.php | 일반 구조용 탄소 강관 (KS D 3566) "샤프트" | SM | 외경*두께 |
| 13 | i_fiber.php | 화이바 글라스 코팅직물 | RM | 두께*너비 |
| 14 | i_sillica.php | 실리카 코팅직물 | RM | 두께*너비 |
| 15 | i_wire.php | 와이어 글라스 코팅직물 | RM | spec |
| 16 | i_wireDaehan.php | 와이어 글라스 코팅직물 (대한) | RM | spec |
| 17 | i_antifireglass.php | 방화유리 | RM | 두께*너비*높이 |
| 18 | i_motor.php | 전동개폐기 | SM | 용량*전압*타입 |
| 19 | i_controller.php | 연동 폐쇄기구 | SM | - |
| 20 | i_bracket.php | 베어링부 | SM | - |
| 21 | i_Fireproof_sealings.php | 내화충진재 | SM | spec |
| 22 | i_cerakwool.php | 세라크울 (C/F L-BIO 1200 B/T) | SM | spec |
| 23 | i_fireproofWire.php | 메탈/아라미드 재봉사 "내화실" | SM | - |

### 2.2 검사항목 유형 분류

#### 공통 검사항목 (대부분 양식에 포함)
| 검사항목 | 검사기준 | 검사방식 | 측정유형 |
|----------|----------|----------|----------|
| 겉모양 | 사용상 해로울 결함이 없을 것 | 육안검사 | checkbox (OK/NG 3회) |

#### 철강재 검사항목 (EGI, GI, SUS, 철판, 앵글 등)
| 검사항목 | 검사기준 | 검사방식 | 측정유형 |
|----------|----------|----------|----------|
| 치수-두께 | 범위별 공차 (auto-highlight) | 체크검사 | numeric (3회) |
| 치수-너비 | 범위별 공차 | 체크검사 | numeric (3회) |
| 치수-길이 | 범위별 공차 | 체크검사 | numeric (3회) |
| 인장강도 | N/㎟ 이상 | 밀시트 | single_value |
| 연신율 | % 이상 (두께별) | 밀시트 | single_value |
| 아연 부착량 | g/㎡ 이상 | 밀시트 | single_value |

#### 직물류 검사항목 (화이바, 실리카, 와이어)
| 검사항목 | 검사기준 | 검사방식 | 측정유형 |
|----------|----------|----------|----------|
| 치수-두께/너비 | ± 공차 | 체크검사 | numeric (3회) |
| 무게 | g/㎡ ± % | 성적서 | single_value |
| 밀도 (경사/위사) | 올/5㎝ ± % | 성적서 | single_value |
| 인장강도 (경사/위사) | N/50㎜ 이상 | 성적서 | single_value |
| 인열강도 | N 이상 | 성적서 | single_value |
| 내열온도 | ℃ 이상 | 성적서 | single_value |

#### 전동개폐기 검사항목
| 검사항목 | 검사기준 | 검사방식 | 측정유형 |
|----------|----------|----------|----------|
| 겉모양 | 결함 없을 것 | 육안검사 | checkbox |
| 구성품 | 누락 없을 것 | 육안검사 | checkbox |
| 셋팅설정/램프 | 점등/소등 상태 | 체크검사 | substitute (성적서) |
| 브레이크 개폐 | 원활 작동 | 체크검사 | substitute |
| 기타 기능설정 | 원활 작동 | 체크검사 | substitute |
| 모터권상능력 | 120% 이상 | 체크검사 | substitute |
| 품질인정 | 내화시험 적합 | 공인기관 | substitute |

### 2.3 SAM 품목 매핑 (tenant_id: 287, 2026-02-05 재분석)

> **참조**: item-master-data-alignment-plan.md 기준 - RM 28건, SM 61건

#### RM (원자재) 28건 상세

| 레거시 양식 | SAM 품목 코드 | 품목 수 | 매핑 상태 |
|------------|--------------|---------|-----------|
| EGI (전기아연도금) | egi1.2*1219*, egi1.6*1219*, egi1.17, egi1.55 등 | 10건 | ✅ 완료 |
| SUS (스테인리스) | sus1.2*1219*, sus1.5*1219* 등 | 11건 | ✅ 완료 |
| GI (용융아연도금) | egi* (EGI 코드로 통합 관리) | (EGI에 포함) | ✅ 통합 |
| 실리카/제연 | S0008 실리카원단(슬리팅), S0010 실리카원단(1270), s0015 제연원단 | 3건 | ✅ 완료 |
| 화이바/와이어 | RM-010 화이바원단, RM-011 와이어원단 | 2건 | ✅ 완료 |
| 기타 RM | RM-007 신설비상문, RM-008 제연커튼 | 2건 | ✅ 완료 |

#### SM (부자재) 61건 상세

| 레거시 양식 | SAM 품목 코드 | 품목 수 | 매핑 상태 |
|------------|--------------|---------|-----------|
| 전동개폐기/제어기 | PM-020~PM-035 | 16건 | ✅ 완료 |
| 앵글 | H0003~H0018 (앵글40x40x3T 등) | 6건 | ✅ 완료 |
| 샤우드 (파이프) | R0001~R0008 (3~10인치) | 8건 | ✅ 완료 |
| 가스켓 | 80062 짜부가스켓, 80067 가스켓쫄대 | 2건 | ✅ 완료 |
| 알카바/컨트롤박스 등 | 기타 부자재 | 29건 | ✅ 완료 |

#### 품목 존재 확인 결과 (2026-02-05 재검증)

| 레거시 양식 | 품목명 | SAM 품목 | 상태 |
|------------|--------|---------|------|
| i_antifireglass.php | 방화유리 | `S0007 망입유리` (PT) | ✅ 존재 (망입유리=방화유리 종류) |
| i_pole.php | 마환봉 | `90205 마환봉` + 환봉 5건 (PT) | ✅ 존재 |
| i_recpipe.php | 각파이프 | `80091 백관 100*50` (SM) | ⚠️ 부분 (1건만) |
| i_shaft.php | 샤프트 | R0001~R0008 샤우드 (SM) | ✅ 대체 가능 |

#### 검토 필요 품목 (1건)

| 레거시 양식 | 품목명 | 현재 상태 | 검토 사항 |
|------------|--------|----------|----------|
| i_platesteel.php | **SS400 일반 철판** | RM 없음, PT로 `철판절단`/`평철*` 존재 | 원자재 수입검사 실제 수행 여부 확인 필요. SUS/EGI만 RM 등록됨 |

---

## 3. 양식 생성 계획

### 3.1 그룹화 전략

**동일 양식 공유 가능 그룹:**
- EGI 1.15T / 1.55T → 1개 양식 (두께별 auto-highlight)
- GI 0.45T / 0.5T / 1.2T → 1개 양식
- SUS 절곡판 (1.2T, 1.5T, 1.55T) → 1개 양식
- SUS 절곡코일 → 별도 양식 (길이 없음)
- 철판 SS400 → 1개 양식
- 앵글/앵글하부 → 2개 양식 (구조 유사하나 규격 다름)

**총 생성 예정 양식: 약 15-18종** (레거시 23종 중 유사 양식 통합)

### 3.2 Phase 구분

#### Phase 1: 철강재 그룹 (8종) - ✅ 완료 (7/8, 1종 품목 없음)

| # | 양식명 | 연결 품목 | 상태 | 비고 |
|---|--------|----------|:----:|------|
| 1.1 | EGI 수입검사 (id:18) | egi1.2*, egi1.6*, egi1.17, egi1.55 (10건) | ✅ | 품목 연결 완료 |
| 1.2 | GI 수입검사 | - | ✅ | 1.1 EGI와 통합 |
| 1.3 | SUS 절곡판 수입검사 (id:19) | sus1.2*, sus1.5* (11건) | ✅ | 완료 |
| 1.4 | SUS 절곡코일 수입검사 | - | ✅ | 1.3에 포함됨 (sus*c) |
| 1.5 | 슬랫코일 수입검사 | - | ✅ | RM 품목 없음, EGI로 커버 |
| 1.6 | 절곡코일 수입검사 | - | ✅ | RM 품목 없음, EGI로 커버 |
| 1.7 | 철판(SS400) 수입검사 | - | ⏸️ | **🔴 RM 품목 없음** |
| 1.8 | 앵글 수입검사 (id:20) | H0003, H0004 앵글 (2건) | ✅ | 완료 |

#### Phase 2: 구조재 그룹 (4종) - ✅ 완료

| # | 양식명 | 연결 품목 | 상태 | 비고 |
|---|--------|----------|:----:|------|
| 2.1 | 앵글하부 수입검사 (id:21) | H0015~H0018 앵글가공 (4건) | ✅ | 완료 |
| 2.2 | 마환봉 수입검사 (id:22) | 90205 마환봉 + 환봉 5건 (6건) | ✅ | 완료 |
| 2.3 | 각파이프 수입검사 (id:23) | 80091 백관 (1건) | ✅ | 완료 |
| 2.4 | 샤프트 수입검사 (id:24) | 샤우드 R0001~R0008 + 80035 (9건) | ✅ | 완료 |

#### Phase 3: 직물류 그룹 (4종) - ✅ 완료

| # | 양식명 | 연결 품목 | 상태 | 비고 |
|---|--------|----------|:----:|------|
| 3.1 | 화이바글라스 수입검사 (id:25) | RM-010 화이바원단 (1건) | ✅ | 완료 |
| 3.2 | 실리카 수입검사 (id:26) | S0008, S0010, s0015 (3건) | ✅ | 완료 |
| 3.3 | 와이어글라스 수입검사 (id:27) | RM-011 와이어원단 (1건) | ✅ | 완료 |
| 3.4 | 방화유리 수입검사 (id:28) | S0007 망입유리 (1건) | ✅ | 완료 |

#### Phase 4: 부자재 그룹 (5종) - 부분 완료

| # | 양식명 | 연결 품목 | 상태 | 비고 |
|---|--------|----------|:----:|------|
| 4.1 | 전동개폐기 수입검사 (id:29) | PM-020~PM-035 (13건) | ✅ | 완료 |
| 4.2 | 연동폐쇄기구 수입검사 | - | ⏸️ | 4.1과 통합됨 |
| 4.3 | 베어링부 수입검사 | - | ⏸️ | 품목 미등록 |
| 4.4 | 내화충진재 수입검사 | - | ⏸️ | 품목 미등록 |
| 4.5 | 내화실 수입검사 (id:30) | 80019 실 (1건) | ✅ | 완료 |

#### Phase 5: 기타 (2종) - 통합 완료

| # | 양식명 | 연결 품목 | 상태 | 비고 |
|---|--------|----------|:----:|------|
| 5.1 | 세라크울 수입검사 | - | ⏸️ | 품목 미등록 |
| 5.2 | 와이어글라스(대한) 수입검사 | - | ✅ | 3.3 (id:27)과 통합 |

---

## 4. 작업 절차

### 4.1 MNG에서 양식 생성하기 (상세 가이드)

#### Step 1: 기존 양식 복제 또는 새 양식 생성

**방법 A: 기존 EGI 양식 복제 (권장)**
```
1. https://mng.sam.kr/document-templates/18/edit 접속
2. 페이지 하단 "복제" 버튼 클릭
3. 양식명 변경 (예: "SUS 절곡판 수입검사")
4. 저장
```

**방법 B: 새 양식 생성**
```
1. https://mng.sam.kr/document-templates/create 접속
2. 기본정보 탭:
   ├── 양식명: (예: "SUS 절곡판 수입검사")
   ├── 카테고리: "수입검사" 선택
   ├── 설명: (레거시 품명 참조)
   └── 결재라인: 담당 → 부서장
3. 저장 후 편집 화면으로 이동
```

#### Step 2: 검사 기준서 탭 설정

```
1. "검사 기준서" 탭 클릭
2. "프리셋 적용" 버튼 → "수입검사 기본" 선택
3. 레거시 검사항목 확인:
   └── 5130/instock/i_{양식명}.php 파일의 itemRow/resultRow 배열 참조
4. 필드 추가:
   ├── "필드 추가" 버튼 클릭
   ├── field_key: 검사항목 식별자 (예: thickness, width, tensile_strength)
   ├── label: 표시명 (예: "두께", "너비", "인장강도")
   ├── field_type 선택:
   │   ├── select (OK/NG 체크박스용)
   │   ├── text + json_criteria (수치입력 3회용)
   │   ├── text (단일값, 성적서 대체용)
   │   └── composite_frequency (주기+n/c용)
   └── standard_criteria: auto-highlight용 기준범위 JSON
5. 드래그로 필드 순서 조정
6. 저장
```

#### Step 3: 품목 연결 설정

```
1. "기본정보" 탭 → "연결 설정" 영역
2. "연결 추가" 버튼 클릭
3. 연결 정보 입력:
   ├── link_key: "items"
   ├── label: "연결 품목 (RM, SM)"
   ├── link_type: "multiple" (여러 품목 연결 가능)
   ├── search_api: "/api/admin/items/search"
   ├── search_params: {"item_type":"RM,SM"}
   └── display_fields: {"title":"name","subtitle":"code"}
4. 품목 검색하여 연결:
   ├── 검색창에 품목명/코드 입력 (예: "sus1.2")
   ├── 검색 결과에서 해당 품목 선택
   └── 여러 품목 추가 가능
5. 저장
```

#### Step 4: 검증

```
1. MNG 미리보기:
   └── 양식 편집 화면 → "미리보기" 버튼
2. API 테스트 (resolve):
   └── curl 또는 Postman으로 resolve API 호출
3. React 앱 테스트:
   └── https://dev.sam.kr 에서 해당 품목 선택 → 문서 생성 확인
```

### 4.2 단계별 절차 요약

```
Step 1: 양식 기본정보 설정
├── MNG에서 새 양식 생성 또는 EGI(id:18) 복제
├── 카테고리: 수입검사
├── 품명 설정 (레거시 itemTitle 참조)
├── 결재라인: 담당, 부서장
└── 연결 품목 설정 (link_type: multiple)

Step 2: 검사 기준서 필드 설정
├── 프리셋 적용 (수입검사 기본)
├── 레거시 검사항목 추가
├── field_type 매핑:
│   ├── 육안검사 OK/NG → checkbox
│   ├── 수치입력 3회 → numeric
│   ├── 밀시트/성적서 → single_value
│   └── 공인기관 성적서 → substitute
└── standard_criteria (auto-highlight) 설정

Step 3: 품목 연결
├── document_template_links에 link 추가
├── 소스 테이블: items
├── search_params: {"item_type":"RM,SM"}
└── display_fields: {"title":"name","subtitle":"code"}

Step 4: 검증
├── MNG에서 양식 미리보기
├── React resolve API 테스트
└── 실제 품목으로 문서 생성 테스트
```

### 4.2 field_type 매핑 기준

| 레거시 측정 방식 | SAM field_type | measurement_type |
|-----------------|----------------|------------------|
| checkbox OK/NG 3회 | select | checkbox |
| 수치입력 3회 (두께/너비/길이) | text + json_criteria | numeric |
| 밀시트 단일값 | text | single_value |
| 성적서 대체 | text | substitute |
| 자유입력 | text | text |

---

## 5. 컨펌 대기 목록

| # | 항목 | 변경 내용 | 영향 범위 | 상태 |
|---|------|----------|----------|------|
| 1 | 양식 통합 여부 | 레거시 23종 → SAM 12-15종 통합 (GI→EGI, 와이어 통합 등) | 양식 구조 | ⏳ 검토 필요 |
| 2 | ~~누락 품목 등록~~ | ~~방화유리, 마환봉~~ → 재검증 결과 모두 존재 확인 | - | ✅ 해결 |
| 3 | SS400 철판 수입검사 | RM에 없음 (PT로 철판절단/평철 존재). 원자재 수입검사 실제 수행 여부 확인 필요 | items | ⏳ 확인 필요 |
| 4 | 와이어글라스 통합 | i_wire.php + i_wireDaehan.php → RM-011로 통합 | 양식 | ✅ 통합 가능 |
| 5 | GI/EGI 통합 | GI 양식을 EGI 양식으로 통합 (동일 코드 체계 사용) | 양식 | ✅ 통합 가능 |
| 6 | 제어기 양식 통합 | 전동개폐기 + 연동폐쇄기구 → PM-* 계열 양식 하나로 | 양식 | ⏳ 검토 필요 |

---

## 6. 변경 이력

| 날짜 | 항목 | 변경 내용 | 파일 | 승인 |
|------|------|----------|------|------|
| 2026-02-05 | - | 계획 문서 초안 작성 | - | - |
| 2026-02-05 | 2.3, 3.2 | **SAM 품목 매핑 재분석**: item_id_mappings 사용 불가 → items 직접 조회. RM 28건, SM 61건 정확한 매핑 완료. GI/모터/샤우드 등 "누락"으로 표시됐던 품목이 실제 존재 확인. | - | - |
| 2026-02-05 | 2.3 | **재검증**: 방화유리(`S0007 망입유리`), 마환봉(`90205` 외 5건) 모두 PT로 존재 확인. **유일하게 검토 필요: SS400 철판** (RM에 없음, PT로 가공품만 존재) | - | - |
| 2026-02-05 | 3.2 | **SUS 절곡판 양식 생성**: template_id:19 생성, 필드 8개 복사, SUS 품목 11건 연결 (14172~14182) | document_templates | - |
| 2026-02-05 | 3.2 | **앵글 양식 생성**: template_id:20 생성, 필드 8개 복사, 앵글 품목 2건 연결 (14484, 14485) | document_templates | - |
| 2026-02-05 | 3.2 | **Phase 2 완료**: 앵글하부(21), 마환봉(22), 각파이프(23), 샤프트(24) - 총 20건 품목 연결 | document_templates | - |
| 2026-02-05 | 3.2 | **Phase 3 완료**: 화이바글라스(25), 실리카(26), 와이어글라스(27), 방화유리(28) - 6건 품목 연결 | document_templates | - |
| 2026-02-05 | 3.2 | **Phase 4 부분 완료**: 전동개폐기(29), 내화실(30) - 14건 품목 연결. 베어링부/내화충진재는 품목 미등록 | document_templates | - |
| 2026-02-05 | 3.2 | **Phase 5 통합 완료**: 와이어글라스(대한) → id:27 통합. 세라크울은 품목 미등록 | document_templates | - |
| 2026-02-05 | 3.2 | **EGI 품목 연결**: template_id:18에 EGI RM 품목 10건 연결 (14183~14239). 슬랫/절곡코일은 별도 RM 없어 EGI로 커버 | document_templates | - |

---

## 7. 참고 문서

- **API 연동 가이드**: `docs/api/document-api-integration.md`
- **문서 양식 동적화 계획**: `~/.claude/plans/steady-discovering-stonebraker.md`
- **레거시 파일**: `5130/instock/i_*.php` (23개)
- **품질 체크리스트**: `docs/standards/quality-checklist.md`

---

## 8. 검증 방법

### 8.1 양식별 검증 체크리스트

- [ ] MNG에서 양식 저장/로드 정상 동작
- [ ] 검사항목 구조가 레거시와 일치
- [ ] auto-highlight (standard_criteria) 정상 동작
- [ ] 품목 연결 완료 (link_values)
- [ ] React resolve API 테스트 통과
- [ ] 문서 생성/저장 테스트 통과

### 8.2 전체 검증 기준

| 기준 | 목표 | 비고 |
|------|------|------|
| 양식 생성 완료 | 12-15종 | 레거시 23종 → 통합 (GI→EGI, 와이어 통합 등) |
| 품목 연결 완료 | RM 28건 + SM 61건 + PT 관련 품목 | 수입검사 대상 품목 |
| 검토 필요 품목 | 1종 (SS400 철판) | RM에 없음. 원자재 수입검사 수행 여부 확인 |
| API 테스트 | resolve/upsert 정상 | 모든 양식 |

---

## 9. 자기완결성 점검 결과

### 9.1 체크리스트 검증

| # | 검증 항목 | 상태 | 비고 |
|---|----------|:----:|------|
| 1 | 작업 목적이 명확한가? | ✅ | 레거시 23종 → SAM 전환 |
| 2 | 성공 기준이 정의되어 있는가? | ✅ | 섹션 8.2 |
| 3 | 작업 범위가 구체적인가? | ✅ | Phase 1-5 정의 |
| 4 | 의존성이 명시되어 있는가? | ✅ | API 구현 완료 전제 |
| 5 | 참고 파일 경로가 정확한가? | ✅ | 5130/instock/ |
| 6 | 단계별 절차가 실행 가능한가? | ✅ | 섹션 4.1 |
| 7 | 검증 방법이 명시되어 있는가? | ✅ | 섹션 8.1 |
| 8 | 모호한 표현이 없는가? | ✅ | - |

### 9.2 새 세션 시뮬레이션 테스트

| 질문 | 답변 가능 | 참조 섹션 |
|------|:--------:|----------|
| Q1. 이 작업의 목적은 무엇인가? | ✅ | 1.1 배경 |
| Q2. 어디서부터 시작해야 하는가? | ✅ | 3.2 Phase 1 |
| Q3. 어떤 파일을 참조해야 하는가? | ✅ | 2.1 파일-품명 매핑 |
| Q4. 작업 완료 확인 방법은? | ✅ | 8. 검증 방법 |
| Q5. 막혔을 때 참고 문서는? | ✅ | 7. 참고 문서 |

**결과**: 5/5 통과 → ✅ 자기완결성 확보

---

*이 문서는 /plan 스킬로 생성되었습니다.*
