From a78d7f376793ce9df3f6a5992cd107f75549817a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 17 Mar 2026 21:58:07 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[receiving]=20=EC=9E=85=EA=B3=A0?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=C3=97=20=EC=88=98=EC=9E=85=EA=B2=80?= =?UTF-8?q?=EC=82=AC=20=EC=97=B0=EB=8F=99=20=EA=B3=84=ED=9A=8D=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 27종 수입검사 템플릿 ↔ 원자재 매핑 전략 (1:N) - Phase 1~3 구현 계획 (데이터 매핑 → API 보강 → React 연동) - 기존 인프라 분석 (DocumentService::resolve, linked_item_ids) --- INDEX.md | 1 + .../receiving-inspection-integration-plan.md | 214 ++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 dev/dev_plans/receiving-inspection-integration-plan.md diff --git a/INDEX.md b/INDEX.md index a9a0e1a..23f0ba9 100644 --- a/INDEX.md +++ b/INDEX.md @@ -36,6 +36,7 @@ | API 학습 | `dev/guides/api-request-lifecycle.md` | Client API로 배우는 요청 생명주기 8단계 | | API 개선 | `dev/dev_plans/api-route-improvement-plan.md` | API 라우트 구조 개선 계획 (1,099개 분석) | | 재고생산 개편 | `dev/dev_plans/stock-production-lot-form-plan.md` | 절곡품 LOT 방식 도입 (캐스케이딩 드롭다운, LOT 자동 생성) | +| 입고×수입검사 연동 | `dev/dev_plans/receiving-inspection-integration-plan.md` | 입고등록 수입검사 27종 매핑, Phase 1~3 계획 | | 운영 배포 | `dev/dev_plans/production-deployment-plan.md` | 배포 계획 | | 서버 운영 | `dev/deploys/ops-manual/README.md` | 서버 운영 매뉴얼 | | 서버 접근/백업 | `system/server-access-management.md` | 계정, 권한, 백업, 리플리케이션 | diff --git a/dev/dev_plans/receiving-inspection-integration-plan.md b/dev/dev_plans/receiving-inspection-integration-plan.md new file mode 100644 index 0000000..ea606dd --- /dev/null +++ b/dev/dev_plans/receiving-inspection-integration-plan.md @@ -0,0 +1,214 @@ +# 입고등록 × 수입검사 연동 계획 + +> **작성일**: 2026-03-17 +> **상태**: 설계 중 +> **담당**: R&D실 (API) + 프론트엔드 개발자 (React) + +--- + +## 1. 개요 + +### 1.1 목적 + +입고등록 시 선택한 품목에 맞는 수입검사 성적서(27종)를 자동 매칭하여 검사를 수행하고, 검사 결과를 입고 데이터에 반영한다. + +### 1.2 현재 문제 + +| 항목 | 현황 | +|------|------| +| 수입검사 정보 섹션 | 검사일/검사결과 **입력 UI 없음** (readOnly 표시만) | +| 수입검사하기 버튼 | 핸들러는 있으나 **화면에 렌더링 안 됨** | +| 검사 등록 (InspectionCreate.tsx) | **API 미연동** (console.log만) | +| 품목 ↔ 템플릿 매핑 | `linked_item_ids` 인프라 있으나 **데이터 미설정** | + +--- + +## 2. 시스템 구조 (기존 인프라) + +### 2.1 템플릿 ↔ 품목 매핑 + +``` +MNG 문서양식관리 +├─ document_templates (27종 수입검사 양식) +│ ├─ category: '수입검사' +│ ├─ linked_item_ids: [101, 102, 103] ← 이 품목들이 이 검사서 사용 +│ └─ sections → section_items (검사항목 N개, 동적) +│ +API DocumentService::resolve() +├─ 입력: { category: 'incoming_inspection', item_id: 101 } +├─ 로직: linked_item_ids에 해당 item_id가 포함된 템플릿 검색 +└─ 출력: { template: {...}, is_new: true/false } +``` + +### 2.2 입고 → 수입검사 흐름 (목표) + +``` +입고등록 + ↓ 품목 선택 + ↓ checkInspectionTemplate(item_id) + ↓ + ├─ 템플릿 있음 → [수입검사하기] 버튼 표시 + │ ↓ 클릭 + │ ↓ DocumentService::resolve(incoming_inspection, item_id) + │ ↓ 해당 품목의 검사항목 동적 로드 + │ ↓ 검사 수행 → Document 저장 + │ ↓ 입고의 inspectionDate/inspectionResult 자동 반영 + │ └─ 입고 상태: receiving_pending → inspection_pending → receiving_pending + │ + └─ 템플릿 없음 → 수입검사 불필요 (바로 입고처리 가능) +``` + +--- + +## 3. 27종 검사서 ↔ 원자재 매핑 전략 + +### 3.1 매핑 방식: 1:N (한 템플릿 → 여러 품목) + +``` +수입검사 템플릿 A (SUS 판재) + └─ linked_item_ids: [SUS304 3T, SUS304 2T, SUS316 3T, ...] + +수입검사 템플릿 B (GI 도금강판) + └─ linked_item_ids: [GI 0.5T, GI 0.8T, GI 1.0T, ...] + +수입검사 템플릿 C (알루미늄) + └─ linked_item_ids: [AL 40x40, AL 30x30, ...] + +수입검사 템플릿 D (DC 모터) + └─ linked_item_ids: [DC모터 24V, DC모터 12V, ...] +``` + +### 3.2 매핑 기준 + +| 기준 | 설명 | +|------|------| +| **재질 그룹** | SUS, GI, AL, 플라스틱 등 동일 재질은 같은 검사항목 | +| **형태 그룹** | 판재, 코일, 프로파일, 봉강 등 형태별 검사 기준 차이 | +| **부품 유형** | 모터, 전자부품, 볼트/너트, 접착제 등 | + +### 3.3 매핑 설정 방법 + +MNG 문서양식관리에서 각 수입검사 템플릿 수정 시 **연결 품목**을 설정한다. + +``` +MNG > 문서 > 문서양식관리 > [수입검사 템플릿 선택] > 수정 + → "연결 품목" 영역에서 해당 검사서를 사용할 품목 선택 + → linked_item_ids에 자동 저장 +``` + +> **중복 방지**: 동일 category(수입검사) 내에서 같은 품목을 두 템플릿에 중복 연결 불가 (MNG에서 자동 검증). + +### 3.4 매핑 검증 + +매핑 완료 후 아래 체크: + +``` +✅ 모든 원자재(RM) 품목이 최소 1개 수입검사 템플릿에 연결됨 +✅ 동일 품목이 2개 이상 수입검사 템플릿에 중복 연결되지 않음 +✅ 템플릿 없는 품목은 입고 시 수입검사 건너뜀 (정상 동작) +``` + +--- + +## 4. 구현 계획 + +### Phase 1: 데이터 매핑 (MNG 작업, 코드 변경 없음) + +MNG 문서양식관리에서 27종 수입검사 템플릿의 `linked_item_ids`에 원자재 품목 연결. + +| 작업 | 담당 | 비고 | +|------|------|------| +| 27종 검사서 ↔ 원자재 매핑표 작성 | R&D실 | 재질/형태별 그룹핑 | +| MNG에서 linked_item_ids 설정 | R&D실 | 각 템플릿 수정 | +| 매핑 검증 (누락/중복 체크) | R&D실 | API로 검증 | + +### Phase 2: API 보강 (백엔드) + +| 작업 | 상태 | 설명 | +|------|:----:|------| +| `DocumentService::resolve()` | ✅ 구현됨 | 품목 → 템플릿 매칭 | +| `ReceivingService::getItemsWithInspectionTemplate()` | ✅ 구현됨 | 입고 목록 필터 | +| 수입검사 결과 → Receiving options 반영 | ⚠️ 보강 필요 | 검사완료 시 inspectionDate/Result 자동 설정 | +| 입고 상태 전이 (inspection_pending) | ⚠️ 보강 필요 | 검사 시작 → 검사대기, 검사완료 → 입고대기 | + +### Phase 3: React UI 연동 (프론트엔드) + +| 작업 | 설명 | +|------|------| +| 수입검사하기 버튼 표시 | `hasInspectionTemplate` 기반 조건부 렌더링 | +| 수입검사 모달 연동 | `DocumentService::resolve()` → 검사항목 동적 로드 | +| 검사결과 저장 | `POST /api/v1/documents` → Document 생성 | +| 입고 데이터 반영 | 검사완료 → inspectionDate/Result 자동 갱신 | + +--- + +## 5. 관련 API 엔드포인트 + +### 5.1 기존 (구현 완료) + +``` +GET /api/v1/documents/resolve + params: { category: 'incoming_inspection', item_id: 101 } + → 해당 품목의 수입검사 템플릿 + 기존 문서 반환 + +POST /api/v1/documents + → 검사 결과 문서 저장 + +GET /api/v1/items/{id} + → 응답에 has_inspection_template 포함 +``` + +### 5.2 보강 필요 + +``` +PATCH /api/v1/receivings/{id}/inspection-result (신규) + body: { inspection_date, inspection_result, document_id? } + → Receiving.options의 검사일/검사결과 업데이트 + → 상태 전이 (inspection_pending → receiving_pending) +``` + +--- + +## 6. 입고등록 화면 변경 (프론트엔드) + +### 수입검사 정보 섹션 개선 + +``` +현재: +┌─────────────────────────────────────────┐ +│ 수입검사 정보 │ +│ 검사일: (빈 readOnly) │ +│ 검사결과: (빈 readOnly) │ +│ 업체 제공 성적서: [파일 업로드] │ +└─────────────────────────────────────────┘ + +변경 후: +┌─────────────────────────────────────────┐ +│ 수입검사 정보 [수입검사하기] │ ← 버튼 (템플릿 있을 때만) +│ 검사일: 2026-03-17 (자동) │ +│ 검사결과: 합격 (자동) │ +│ 업체 제공 성적서: [파일 업로드] │ +│ │ +│ [수입검사성적서 보기] │ ← 검사 완료 후 표시 +└─────────────────────────────────────────┘ +``` + +### 버튼 표시 조건 + +| 버튼 | 조건 | +|------|------| +| 수입검사하기 | `hasInspectionTemplate === true` && 검사 미완료 | +| 수입검사성적서 보기 | 검사 완료 (inspectionResult 존재) | + +--- + +## 관련 문서 + +- [수입검사 성적서 연동 계획](incoming-inspection-document-integration-plan.md) — 기존 상세 설계 +- [수입검사 템플릿 계획](incoming-inspection-templates-plan.md) — 템플릿 생성 계획 +- [채번규칙](../../rules/numbering-rules.md) — 원자재 로트번호 채번 +- [입고관리 분석](receiving-management-analysis-plan.md) — 입고 시스템 현황 + +--- + +**최종 업데이트**: 2026-03-17