Files
sam-docs/dev/dev_plans/receiving-inspection-mapping-table.md
김보곤 735bc9fd19 docs: [receiving] 수입검사 템플릿 ↔ 원자재 매핑표 초안
- 16종 템플릿 × 93개 품목 매핑 분석
- 기존 linked_item_ids 전부 무효 (old ID) 확인
- 확정 매핑, 검토 필요, 검사 제외 대상 분류
2026-03-17 22:07:21 +09:00

7.9 KiB

수입검사 템플릿 ↔ 원자재 품목 매핑표

작성일: 2026-03-17 상태: 초안 (R&D실 검토 필요) 목적: MNG 문서양식관리의 수입검사 템플릿에 품목을 연결하여 입고 시 수입검사 자동 매칭


1. 현황

항목 수량
수입검사 템플릿 (활성) 16종
원자재/부자재/소모품 (활성) 93개
현재 매핑 완료 2개 (실리카원단만)
기존 linked_item_ids 대부분 무효 old item ID (삭제됨)

주의: 기존 linked_item_ids에 저장된 ID(14xxx)는 5130 마이그레이션 이전 데이터로, 현재 items 테이블에 존재하지 않는다. 전체 재매핑 필요.


2. 매핑표

2.1 SUS 계열 (원자재)

템플릿 템플릿ID 품목 품목ID item_type
SUS 절곡판 수입검사 19 sus1.2*1219*2438 14953 RM
sus1.2*1219*3000 14954 RM
sus1.2t*1219*4000 14955 RM
sus1.5*1219*2438 14956 RM
sus1.5*1219*3000 14957 RM
sus1.5*1219*4000 14958 RM
sus1.2*1219*c 14959 RM
sus1.5*1219*2500 14960 RM
sus1.2*1219*4230 14961 RM
sus1.2*1219*3000 P/L 14962 RM
sus1.2*1219*2500 14963 RM
SUS 316 slat 15226 SM
철재용하장바(SUS1.2T) 14940 SM

2.2 EGI 계열 (원자재)

템플릿 템플릿ID 품목 품목ID item_type
EGI 수입검사 (두께별 자동매칭) 18 egi1.2*1219*2438 14964 RM
egi1.2*1219*3000 14965 RM
egi1.2*1219*4000 14966 RM
egi1.6*1219*2438 14967 RM
egi1.6*1219*3000 14968 RM
egi1.6*1219*4000 14969 RM
egi1.6t 15017 RM
egi1.55 15018 RM
egi1.17 15019 RM
egi 1.17 15020 RM

2.3 앵글 계열

템플릿 템플릿ID 품목 품목ID item_type
앵글 수입검사 20 앵글40x40x3T 15265 SM
앵글50x50x4T 15266 SM
앵글가공 40*3T 15276 SM
앵글가공 50*4T (H0016) 15277 SM
앵글가공 50*4T (H0017) 15278 SM
앵글가공 50*4T (H0018) 15279 SM

2.4 내화/방화 원단 계열

템플릿 템플릿ID 품목 품목ID item_type
실리카 수입검사 26 실리카원단(슬리팅) 15491 RM
실리카원단(1270) 15493 RM
화이바글라스 수입검사 25 화이바원단 15563 RM
와이어글라스 수입검사 27 와이어원단 15564 RM
내화실 수입검사 30 내화실 15027 SM

2.5 전동/제어기 계열

템플릿 템플릿ID 품목 품목ID item_type
전동개폐기 수입검사 29 제어기 노출형 15548 SM
제어기 매립형 15549 SM
방화 콘트롤박스(단상) 15550 SM
방화 콘트롤박스(삼상) 15551 SM
방화 콘트롤박스(1500K) 15552 SM
방화 방화스위치 15553 SM
방범 콘트롤박스(단상) 15554 SM
방범 콘트롤박스(삼상) 15555 SM
방범 스위치커버 15556 SM
방범 안전리미트 15557 SM
방범 리모콘+스위치(최초) 15558 SM
방범 리모콘4구 15559 SM
방범 스위치(무선+수신기) 15560 SM
IS-리미트 15152 SM
IS-제어기기판 15153 SM
KD뒷박스 15149 SM
KD리미트잭 15174 SM
KD방범스위치카바 15151 SM
KD컨트롤박스 CASE (80136) 15145 SM
KD컨트롤박스 CASE (80137) 15146 SM
KST-제어기뒷박스 15172 SM
주문형 매립박스 15071 SM

2.6 샤프트/파이프 계열

템플릿 템플릿ID 품목 품목ID item_type
샤프트 수입검사 24 웨이브(201) 15098 SM
각파이프 수입검사 23 백관 100*50 15105 SM

2.7 기타 부자재

템플릿 템플릿ID 품목 품목ID item_type
마환봉 수입검사 22 8인치후렌지 15072 SM
짜부가스켓 15073 SM
가스켓쫄대(삼각) 15080 SM

3. 검토 필요 (R&D실 판단 요청)

3.1 매핑 불확실 품목

아래 품목은 적합한 수입검사 템플릿이 불명확하다. R&D실에서 결정 필요.

품목ID 품목명 item_type 후보 템플릿 비고
15561 신설비상문 RM ? 비상문 전용 검사서 필요?
15511 제연원단 RM 실리카? 화이바? 원단 재질 확인 필요
15562 제연커튼 RM 실리카? 완제품에 가까움?
15040 BS 샤우드 2인치 SM 샤프트? 샤우드 전용 검사서?
15474~15481 BS/KS 샤우드 3~10인치 (7개) SM 샤프트? 동일 그룹
14933, 15081~15083 알카바(R-case) (4개) SM ? 알루미늄 케이스
15038 알카바몰딩 SM ? 알루미늄 몰딩
15114 AL단열1.6T SM ? 알루미늄 단열
15046, 15087 덧대기원단 (2개) SM 화이바? 실리카? 원단 재질 확인
14947 불연지퍼 SM ? 소모성 부자재
14948 지퍼슬라이더 SM ? 소모성 부자재
15041, 15514 조인트/조인트바 SM ?
15065 비상문평철세트 SM SUS? 재질 확인
15134, 15135 KD포장박스 (2개) SM ? 포장재는 검사 불필요?
15251 쪽잠 SM ?
15480 샤우드3인치 SM 샤프트? BS와 다른 규격?
15226 SUS 316 slat SM SUS 절곡판? SUS 재질

3.2 수입검사 제외 대상

아래 품목은 수입검사가 불필요한 것으로 판단된다 (비물리적 항목).

품목ID 품목명 item_type 사유
15228 출장비 CS 비용 항목
15229 노무비 CS 비용 항목
15230 금액조정 CS 비용 항목
15250 모터A/S CS A/S 항목
15134 KD포장박스 SM 포장재 (검사 불필요?)
15135 KD포장박스 SM 포장재 (검사 불필요?)

4. 실행 방법

4.1 매핑표 확정 후 tinker 실행

R&D실 검토 후 확정된 매핑표를 기반으로 아래 형태로 실행:

docker exec sam-mng-1 php artisan tinker --execute="
// 기존 무효 linked_item_ids 초기화 + 새 매핑 설정
\$mapping = [
    19 => [14953,14954,14955,14956,14957,14958,14959,14960,14961,14962,14963,15226,14940], // SUS 절곡판
    18 => [14964,14965,14966,14967,14968,14969,15017,15018,15019,15020], // EGI
    20 => [15265,15266,15276,15277,15278,15279], // 앵글
    // ... 나머지 템플릿
];

foreach (\$mapping as \$templateId => \$itemIds) {
    DB::table('document_templates')
        ->where('id', \$templateId)
        ->update(['linked_item_ids' => json_encode(\$itemIds)]);
    print('템플릿 ' . \$templateId . ': ' . count(\$itemIds) . '개 품목 연결' . PHP_EOL);
}
"

4.2 검증

# 매핑 확인
docker exec sam-api-1 php artisan tinker --execute="
\$items = DB::table('items')->where('tenant_id', 287)->whereIn('item_type', ['RM','SM'])->whereNull('deleted_at')->where('is_active', true)->pluck('id')->toArray();
\$service = app(App\Services\ReceivingService::class);
// ... has_inspection_template 확인
"

관련 문서


최종 업데이트: 2026-03-17