Files
sam-docs/plans/incoming-inspection-templates-plan.md
권혁성 718992b3ca docs: SUS 절곡판 수입검사 양식 계획 및 변경 이력 추가
- 수입검사 양식 전환 계획 문서 추가 (plans/incoming-inspection-templates-plan.md)
- SUS 양식(id:19) 생성 변경 이력 문서 추가 (changes/20260205_sus_inspection_template.md)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 19:22:22 +09:00

23 KiB

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

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


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

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

1단계: 환경 확인

# 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단계: 양식 생성 시작

환경 정보

항목
프로젝트 루트 /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 기준

품목 검색 쿼리

# 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 테스트

# 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, ...}'

레거시 파일 분석 방법

# 특정 양식 파일 읽기 (예: 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

📍 현재 진행 상태

항목 내용
마지막 완료 작업 SUS 절곡판 수입검사 양식 생성 (id:19) + 품목 11건 연결
다음 작업 앵글 수입검사 양식 생성 (Phase 1.8)
진행률 2/23 (EGI, SUS 절곡판 완료)
마지막 업데이트 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 ABT
8 i_anglebottom.php 일반구조용 압연강재 (JIS G 3101, SS400) "앵글하부" SM ABT
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 ABT
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.21219, egi1.61219, egi1.17, egi1.55 등 10건 완료
SUS (스테인리스) sus1.21219, sus1.51219 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건 완료
샤우드 (파이프) R0001R0008 (310인치) 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종) - 우선순위 높음

# 양식명 연결 품목 상태 비고
1.1 EGI 수입검사 (기존 18번) egi1.2*, egi1.6*, egi1.17, egi1.55 (10건) 완료
1.2 GI 수입검사 EGI 코드로 통합 (별도 양식 불필요) EGI와 통합
1.3 SUS 절곡판 수입검사 (id:19) sus1.2*, sus1.5* (11건) 완료
1.4 SUS 절곡코일 수입검사 sus*c 코드 품목 절곡판과 통합 검토
1.5 슬랫코일 수입검사 (EGI 계열로 커버 가능) 양식 통합 검토
1.6 절곡코일 수입검사 (EGI 계열로 커버 가능) 양식 통합 검토
1.7 철판(SS400) 수입검사 - 🔴 품목 신규 등록 필요
1.8 앵글 수입검사 H0003~H0018 앵글* (6건)

Phase 2: 구조재 그룹 (4종)

# 양식명 연결 품목 상태 비고
2.1 앵글하부 수입검사 H0015~H0018 앵글가공* (4건)
2.2 마환봉 수입검사 90205 마환봉 + 환봉 5건 (PT) 품목 존재
2.3 각파이프 수입검사 80091 백관 100*50 (1건) 품목 추가 등록 권장
2.4 샤프트 수입검사 R0001~R0008 샤우드 (8건) 샤우드가 샤프트 역할

Phase 3: 직물류 그룹 (4종)

# 양식명 연결 품목 상태 비고
3.1 화이바글라스 수입검사 RM-010 화이바원단 (1건)
3.2 실리카 수입검사 S0008, S0010, s0015 실리카/제연원단 (3건)
3.3 와이어글라스 수입검사 RM-011 와이어원단 (1건)
3.4 방화유리 수입검사 S0007 망입유리 (1건) 품목 존재 (망입유리)

Phase 4: 부자재 그룹 (5종)

# 양식명 연결 품목 상태 비고
4.1 전동개폐기/제어기 수입검사 PM-020~PM-035 (16건) 품목 존재
4.2 연동폐쇄기구 수입검사 (PM 제어기 계열에 포함) 4.1과 통합 검토
4.3 베어링부 수입검사 (구체적 매핑 필요)
4.4 내화충진재 수입검사 (구체적 매핑 필요)
4.5 내화실 수입검사 80019 실 (1건)

Phase 5: 기타 (2종)

# 양식명 연결 품목 상태 비고
5.1 세라크울 수입검사 (구체적 매핑 필요)
5.2 와이어글라스(대한) 수입검사 RM-011과 동일 3.3과 통합

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 -

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 스킬로 생성되었습니다.