- 문서관리 1단계 변경사항 (20260128_document_management_phase1_1.md) - FCM 사용자 타겟 알림 계획 - 수입검사 문서 통합 계획 - 품목 마이그레이션 계획 (경동) - 수주 마이그레이션 계획 (경동) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
672 lines
34 KiB
Markdown
672 lines
34 KiB
Markdown
# 수입검사 성적서 시스템 연동 계획
|
|
|
|
> **작성일**: 2025-01-28
|
|
> **목적**: MNG 문서양식관리로 수입검사 성적서 템플릿(20종 - 제품별 검사기준 상이) 생성 및 미리보기 구현, 이후 API/React 연동
|
|
> **기준 문서**: `docs/plans/document-management-system-plan.md`, `mng/resources/views/document-templates/`
|
|
> **상태**: 📋 계획 수립
|
|
|
|
---
|
|
|
|
## 📍 현재 진행 상태
|
|
|
|
| 항목 | 내용 |
|
|
|------|------|
|
|
| **마지막 완료 작업** | 분석 완료 |
|
|
| **다음 작업** | Phase 1.1 - 수입검사 성적서 양식 템플릿 생성 (MNG) |
|
|
| **진행률** | 0/8 (0%) |
|
|
| **마지막 업데이트** | 2025-01-28 |
|
|
|
|
---
|
|
|
|
## 1. 개요
|
|
|
|
### 1.1 배경
|
|
|
|
현재 React 프론트엔드의 수입검사 성적서 모달(`InspectionCreate.tsx`)은 4개 검사항목이 하드코딩되어 있음. 실제로는 **품목(원자재) 종류별로 검사기준이 다른 20여 종의 수입검사 성적서 양식**이 필요하며, MNG의 문서양식관리/문서관리 시스템과 연동하여:
|
|
|
|
1. **문서양식관리**: 수입검사 성적서 양식 20종 생성 (각 양식마다 검사항목, 기준, 수치가 다름)
|
|
2. **품목-양식 매핑**: 각 품목이 어떤 양식을 사용할지 연결
|
|
3. **문서관리**: 실제 검사 결과 저장 및 조회
|
|
4. **React 모달**: 품목에 맞는 양식 자동 선택 → 검사항목 동적 렌더링
|
|
|
|
**양식 20종 구조:**
|
|
```
|
|
양식 A (철제품용) ←── 품목: 가이드레일, 브라켓, 철판
|
|
양식 B (도장품용) ←── 품목: 도어프레임, 패널
|
|
양식 C (플라스틱용) ←── 품목: 사출부품, 커버
|
|
양식 D (원자재용) ←── 품목: 철판, 봉강
|
|
... (20종)
|
|
```
|
|
|
|
### 1.2 현재 시스템 구조
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ React (InspectionCreate.tsx) │
|
|
│ ├─ 검사 대상 선택 (좌측) │
|
|
│ ├─ 검사 정보 (검사일, 검사자, LOT번호) │
|
|
│ ├─ 검사 항목 테이블 (4개 하드코딩) ← 동적화 필요 │
|
|
│ └─ 종합 의견 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
↓ (현재 미연동)
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ MNG (문서양식관리/문서관리) │
|
|
│ ├─ DocumentTemplate (양식 정의) │
|
|
│ │ ├─ ApprovalLines (결재선) │
|
|
│ │ ├─ BasicFields (기본 필드) │
|
|
│ │ ├─ Sections → SectionItems (검사 항목) ← 20종 동적 기준 │
|
|
│ │ └─ Columns (테이블 컬럼) │
|
|
│ └─ Document + DocumentData (EAV 패턴) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 1.3 목표 시스템 구조
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ React (InspectionCreate.tsx) │
|
|
│ ├─ API: GET /inspection-templates?item_code=xxx │
|
|
│ │ └─ 제품별 검사 항목 동적 로드 │
|
|
│ ├─ API: POST /documents │
|
|
│ │ └─ 검사 결과 저장 (Document + DocumentData) │
|
|
│ └─ API: GET /documents/{id} │
|
|
│ └─ 저장된 성적서 조회 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ API (Laravel) │
|
|
│ ├─ InspectionTemplateService │
|
|
│ │ └─ 제품 ↔ 검사양식 매핑 │
|
|
│ └─ DocumentService │
|
|
│ └─ 검사 결과 CRUD │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 1.4 기준 원칙
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 🎯 핵심 원칙 │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ 1. EAV 패턴 활용: DocumentData로 동적 필드 저장 │
|
|
│ 2. 제품-양식 매핑: 품목코드 기반 검사양식 자동 선택 │
|
|
│ 3. 기존 구조 활용: MNG DocumentTemplate 구조 그대로 사용 │
|
|
│ 4. 결재 기능 보류: 결재요청/승인/반려는 기존 시스템 연동 예정 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 1.5 변경 승인 정책
|
|
|
|
| 분류 | 예시 | 승인 |
|
|
|------|------|------|
|
|
| ✅ 즉시 가능 | API 엔드포인트 추가, React 컴포넌트 수정 | 불필요 |
|
|
| ⚠️ 컨펌 필요 | 테이블 컬럼 추가, 새 테이블 생성 | **필수** |
|
|
| 🔴 금지 | 기존 테이블 구조 변경, documents 테이블 필드 삭제 | 별도 협의 |
|
|
|
|
### 1.6 준수 규칙
|
|
|
|
- `docs/reference/api-rules.md` - API 개발 규칙
|
|
- `docs/specs/database-schema.md` - DB 스키마
|
|
- `docs/guides/swagger-guide.md` - Swagger 문서화
|
|
- `docs/reference/quality-checklist.md` - 품질 체크리스트
|
|
|
|
---
|
|
|
|
## 2. 대상 범위
|
|
|
|
### 2.1 Phase 1: MNG 문서양식 및 미리보기 (메인 작업) ⭐
|
|
|
|
| # | 작업 항목 | 상태 | 파일 | 비고 |
|
|
|---|----------|:----:|------|------|
|
|
| 1.1 | 수입검사 양식 템플릿 생성 | ⏳ | MNG UI | 1종 먼저 생성 (샘플) |
|
|
| 1.2 | 미리보기 기능 확인 | ⏳ | edit.blade.php | 수입검사 성적서 양식 출력 |
|
|
| 1.3 | 문서 생성 테스트 | ⏳ | MNG /documents/create | 템플릿 기반 문서 작성 |
|
|
| 1.4 | **품목-양식 매핑 기능** | ⏳ | 신규 페이지 | 품목별 사용할 양식 연결 |
|
|
| 1.5 | 추가 양식 생성 (필요시) | ⏳ | MNG UI | 20종 순차 생성 |
|
|
|
|
### 2.2 Phase 2: API 백엔드 (후속 작업)
|
|
|
|
| # | 작업 항목 | 상태 | 파일 | 비고 |
|
|
|---|----------|:----:|------|------|
|
|
| 2.1 | 검사 템플릿 조회 API | ⏳ | `InspectionTemplateController` | 제품별 검사항목 반환 |
|
|
| 2.2 | 제품-양식 매핑 테이블 | ⏳ | 마이그레이션 | item_inspection_template_mappings |
|
|
| 2.3 | 문서 생성/조회 API 확장 | ⏳ | `DocumentController` | linkable 연동 |
|
|
|
|
### 2.3 Phase 3: React 연동 (최종 작업)
|
|
|
|
| # | 작업 항목 | 상태 | 파일 | 비고 |
|
|
|---|----------|:----:|------|------|
|
|
| 3.1 | 검사항목 동적 로드 | ⏳ | `InspectionCreate.tsx` | API 연동 |
|
|
| 3.2 | 검사 결과 저장/조회 | ⏳ | `InspectionCreate.tsx` | POST/GET /documents |
|
|
|
|
---
|
|
|
|
## 3. 작업 절차
|
|
|
|
### 3.1 Phase 1 작업 흐름 (MNG - 메인 작업)
|
|
|
|
```
|
|
[Step 1: 문서양식 생성] (1종 샘플 먼저)
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ MNG /document-templates/create │
|
|
│ │
|
|
│ 예: "철제품 수입검사 성적서" 양식 생성 │
|
|
│ │
|
|
│ 1. 기본정보 탭 │
|
|
│ - 양식명: 철제품 수입검사 성적서 │
|
|
│ - 분류: 품질/수입검사 │
|
|
│ - 문서 제목: 수입검사 성적서 │
|
|
│ │
|
|
│ 2. 결재라인 탭 │
|
|
│ - 작성 (품질팀) → 검토 (품질팀장) → 승인 (공장장) │
|
|
│ │
|
|
│ 3. 검사 기준서 탭 │
|
|
│ - 섹션: "검사 항목" │
|
|
│ - 항목들 (철제품에 맞는 검사기준): │
|
|
│ · 겉모양 - 외관 - 흠집,녹 없음 - 육안 │
|
|
│ · 치수 - 두께 - ±0.1mm - 마이크로미터 │
|
|
│ · 치수 - 폭 - ±1mm - 줄자 │
|
|
│ · 재질 - 경도 - HRC 45-50 - 경도계 │
|
|
│ │
|
|
│ 4. 테이블 컬럼 탭 │
|
|
│ - 구분, 항목, 규격, 방법, 판정, 비고 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
[Step 2: 미리보기 확인]
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 미리보기 버튼 클릭 │
|
|
│ │
|
|
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
│ │ 철제품 수입검사 성적서 │ │
|
|
│ │ (주)SAM │ │
|
|
│ │ │ │
|
|
│ │ 결재란: [작성] [검토] [승인] │ │
|
|
│ │ │ │
|
|
│ │ [검사 항목] │ │
|
|
│ │ ┌──────┬──────┬──────────┬──────┬──────┬──────┐ │ │
|
|
│ │ │ 구분 │ 항목 │ 규격 │ 방법 │ 판정 │ 비고 │ │ │
|
|
│ │ ├──────┼──────┼──────────┼──────┼──────┼──────┤ │ │
|
|
│ │ │겉모양│ 외관 │흠집,녹無 │ 육안 │ │ │ │ │
|
|
│ │ │ 치수 │ 두께 │ ±0.1mm │마이크로│ │ │ │ │
|
|
│ │ │ 치수 │ 폭 │ ±1mm │ 줄자 │ │ │ │ │
|
|
│ │ │ 재질 │ 경도 │HRC 45-50│경도계│ │ │ │ │
|
|
│ │ └──────┴──────┴──────────┴──────┴──────┴──────┘ │ │
|
|
│ │ │ │
|
|
│ │ 종합 판정: □ 적합 □ 부적합 □ 조건부적합 │ │
|
|
│ └───────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ✅ 양식이 원하는 대로 출력되는지 확인 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
[Step 3: 문서 생성 테스트]
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ MNG /documents/create │
|
|
│ │
|
|
│ 1. 템플릿 선택: 철제품 수입검사 성적서 │
|
|
│ 2. 제목 입력 │
|
|
│ 3. 기본 필드 입력 (검사일, 검사자, LOT번호 등) │
|
|
│ 4. 검사 항목별 판정 입력 │
|
|
│ 5. 저장 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
[Step 4: 품목-양식 매핑 기능] ⭐ 신규
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ MNG /item-inspection-mappings (신규 페이지) │
|
|
│ │
|
|
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
│ │ 품목-검사양식 매핑 │ │
|
|
│ │ │ │
|
|
│ │ [양식 선택] 철제품 수입검사 성적서 ▼ │ │
|
|
│ │ │ │
|
|
│ │ 연결된 품목: │ │
|
|
│ │ ┌──────────┬──────────────┬────────┐ │ │
|
|
│ │ │ 품목코드 │ 품목명 │ 해제 │ │ │
|
|
│ │ ├──────────┼──────────────┼────────┤ │ │
|
|
│ │ │ A001 │ 가이드레일 │ X │ │ │
|
|
│ │ │ A002 │ 브라켓 │ X │ │ │
|
|
│ │ │ A003 │ 철판 1.0t │ X │ │ │
|
|
│ │ └──────────┴──────────────┴────────┘ │ │
|
|
│ │ │ │
|
|
│ │ [+ 품목 추가] │ │
|
|
│ └───────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ → 품목 선택 시 해당 양식의 검사항목으로 검사 진행 │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
[Step 5: 추가 양식 생성] (필요시)
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 같은 방식으로 나머지 양식 생성: │
|
|
│ │
|
|
│ - 도장품 수입검사 성적서 (도막두께, 밀착력, 색상...) │
|
|
│ - 플라스틱 수입검사 성적서 (외관, 치수, 강도...) │
|
|
│ - 원자재 수입검사 성적서 (성적서 확인, 치수...) │
|
|
│ - ... (총 20종) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 3.2 Phase 2-3 데이터 흐름 (후속 작업)
|
|
|
|
> Phase 1 완료 후 진행
|
|
|
|
### 3.2 API 스펙
|
|
|
|
#### API 1: 검사 템플릿 조회
|
|
|
|
```
|
|
GET /api/v1/inspection-templates
|
|
|
|
Query Parameters:
|
|
- item_code: string (선택) - 품목코드로 매핑된 템플릿 조회
|
|
- category: string (선택) - 카테고리로 필터링
|
|
|
|
Response 200:
|
|
{
|
|
"success": true,
|
|
"data": {
|
|
"id": 1,
|
|
"name": "수입검사 성적서",
|
|
"category": "품질",
|
|
"title": "수입검사 성적서",
|
|
"basic_fields": [
|
|
{ "id": 1, "label": "검사일", "field_type": "date", "is_required": true },
|
|
{ "id": 2, "label": "검사자", "field_type": "text", "is_required": true },
|
|
{ "id": 3, "label": "LOT번호", "field_type": "text", "is_required": true }
|
|
],
|
|
"sections": [
|
|
{
|
|
"id": 1,
|
|
"title": "철제품 검사",
|
|
"image_path": null,
|
|
"items": [
|
|
{
|
|
"id": 101,
|
|
"category": "겉모양",
|
|
"item": "외관",
|
|
"standard": "이상 없음",
|
|
"method": "육안",
|
|
"frequency": "전수",
|
|
"regulation": "사내규격"
|
|
},
|
|
{
|
|
"id": 102,
|
|
"category": "치수",
|
|
"item": "두께",
|
|
"standard": "1.0±0.1mm",
|
|
"method": "계측",
|
|
"frequency": "샘플링",
|
|
"regulation": "KS D 3503"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"columns": [
|
|
{ "id": 1, "label": "검사항목", "width": "150px", "column_type": "text" },
|
|
{ "id": 2, "label": "규격", "width": "200px", "column_type": "text" },
|
|
{ "id": 3, "label": "검사방법", "width": "100px", "column_type": "text" },
|
|
{ "id": 4, "label": "판정", "width": "100px", "column_type": "select" },
|
|
{ "id": 5, "label": "비고", "width": "200px", "column_type": "text" }
|
|
],
|
|
"footer_judgement_options": ["적합", "부적합", "조건부적합"]
|
|
}
|
|
}
|
|
```
|
|
|
|
#### API 2: 문서 생성 (수입검사 결과 저장)
|
|
|
|
```
|
|
POST /api/v1/documents
|
|
|
|
Request Body:
|
|
{
|
|
"template_id": 1,
|
|
"title": "수입검사 성적서 - A001 가이드레일",
|
|
"linkable_type": "App\\Models\\Receiving",
|
|
"linkable_id": 5,
|
|
"data": {
|
|
"basic_fields": {
|
|
"inspection_date": "2025-01-28",
|
|
"inspector": "김철수",
|
|
"lot_no": "250128-01"
|
|
},
|
|
"section_items": [
|
|
{
|
|
"section_id": 1,
|
|
"item_id": 101,
|
|
"judgment": "적합",
|
|
"remark": ""
|
|
},
|
|
{
|
|
"section_id": 1,
|
|
"item_id": 102,
|
|
"judgment": "적합",
|
|
"remark": "측정값: 0.98mm"
|
|
}
|
|
],
|
|
"overall_judgment": "적합",
|
|
"opinion": "전 항목 적합 판정"
|
|
}
|
|
}
|
|
|
|
Response 201:
|
|
{
|
|
"success": true,
|
|
"message": "문서가 저장되었습니다.",
|
|
"data": {
|
|
"id": 100,
|
|
"document_no": "IQC-20250128-0001",
|
|
"status": "DRAFT"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 3.3 DB 스키마 추가
|
|
|
|
#### 제품-검사양식 매핑 테이블
|
|
|
|
```sql
|
|
CREATE TABLE item_inspection_template_mappings (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
tenant_id BIGINT UNSIGNED NOT NULL,
|
|
item_id BIGINT UNSIGNED NOT NULL, -- items.id
|
|
template_id BIGINT UNSIGNED NOT NULL, -- document_templates.id
|
|
priority INT DEFAULT 0, -- 우선순위 (높을수록 우선)
|
|
created_at TIMESTAMP NULL,
|
|
updated_at TIMESTAMP NULL,
|
|
|
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id),
|
|
FOREIGN KEY (item_id) REFERENCES items(id),
|
|
FOREIGN KEY (template_id) REFERENCES document_templates(id),
|
|
UNIQUE KEY unique_item_template (tenant_id, item_id, template_id)
|
|
);
|
|
```
|
|
|
|
### 3.4 React 컴포넌트 수정
|
|
|
|
#### InspectionCreate.tsx 변경 사항
|
|
|
|
```typescript
|
|
// 기존 (하드코딩)
|
|
const defaultInspectionItems: InspectionCheckItem[] = [
|
|
{ id: '1', name: '겉모양', specification: '외관 이상 없음', method: '육안', judgment: '' },
|
|
{ id: '2', name: '두께', specification: 't 1.0', method: '계측', judgment: '' },
|
|
// ...
|
|
];
|
|
|
|
// 변경 후 (동적 로드)
|
|
const [template, setTemplate] = useState<InspectionTemplate | null>(null);
|
|
const [inspectionItems, setInspectionItems] = useState<InspectionItem[]>([]);
|
|
|
|
useEffect(() => {
|
|
if (selectedTarget?.itemCode) {
|
|
loadInspectionTemplate(selectedTarget.itemCode);
|
|
}
|
|
}, [selectedTarget]);
|
|
|
|
const loadInspectionTemplate = async (itemCode: string) => {
|
|
const response = await fetch(`/api/v1/inspection-templates?item_code=${itemCode}`);
|
|
const result = await response.json();
|
|
if (result.success) {
|
|
setTemplate(result.data);
|
|
// 섹션의 아이템들을 평탄화하여 검사항목 배열 생성
|
|
const items = result.data.sections.flatMap(section =>
|
|
section.items.map(item => ({
|
|
...item,
|
|
section_id: section.id,
|
|
judgment: '',
|
|
remark: ''
|
|
}))
|
|
);
|
|
setInspectionItems(items);
|
|
}
|
|
};
|
|
```
|
|
|
|
---
|
|
|
|
## 4. 상세 작업 내용
|
|
|
|
### 4.1 Phase 1: MNG 문서양식 및 미리보기 (메인 작업) ⭐
|
|
|
|
#### 1.1 수입검사 양식 템플릿 생성
|
|
|
|
MNG `/document-templates` 페이지에서 수입검사 성적서 양식 생성:
|
|
|
|
**양식 구조:**
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ [상단 고정] │
|
|
│ ├─ 문서 제목: 수입검사 성적서 │
|
|
│ ├─ 회사명, 문서번호, 작성일 │
|
|
│ └─ 결재란 (작성 → 검토 → 승인) │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ [기본 정보] │
|
|
│ ├─ 품목코드, 품목명, 규격 │
|
|
│ ├─ 공급업체, 입고수량, 입고일 │
|
|
│ ├─ 검사일, 검사자, LOT번호 │
|
|
│ └─ 발주번호, PO번호 │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ [검사 항목 테이블] ← 동적 (20종) │
|
|
│ ┌──────┬──────┬──────┬──────┬──────┬──────┐ │
|
|
│ │ 구분 │ 항목 │ 규격 │ 방법 │ 판정 │ 비고 │ │
|
|
│ ├──────┼──────┼──────┼──────┼──────┼──────┤ │
|
|
│ │겉모양│ 외관 │이상無│ 육안 │ 적합 │ │ │
|
|
│ │ 치수 │ 두께 │1.0mm │ 계측 │ 적합 │0.98mm│ │
|
|
│ │ 치수 │ 폭 │1000mm│ 계측 │ 적합 │ │ │
|
|
│ └──────┴──────┴──────┴──────┴──────┴──────┘ │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ [하단] │
|
|
│ ├─ 종합 판정: ○ 적합 / ○ 부적합 / ○ 조건부적합 │
|
|
│ └─ 비고 (종합 의견) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**MNG에서 설정할 항목:**
|
|
|
|
1. **기본정보 탭**
|
|
- 양식명: 수입검사 성적서
|
|
- 분류: 품질
|
|
- 문서 제목: 수입검사 성적서
|
|
|
|
2. **결재라인 탭**
|
|
- 작성 (품질팀)
|
|
- 검토 (품질팀장)
|
|
- 승인 (공장장)
|
|
|
|
3. **검사 기준서 탭** (섹션 + 항목)
|
|
- 섹션: "검사 항목"
|
|
- 항목들 (20종 예시):
|
|
|
|
| 구분 | 검사항목 | 검사기준 | 검사방법 | 검사주기 | 관련규정 |
|
|
|------|---------|---------|---------|---------|---------|
|
|
| 겉모양 | 외관 | 흠집, 녹 없음 | 육안 | 전수 | 사내규격 |
|
|
| 치수 | 두께 | ±0.1mm | 마이크로미터 | 샘플링 | KS D 3503 |
|
|
| 치수 | 폭 | ±1mm | 줄자 | 샘플링 | KS D 3503 |
|
|
| 치수 | 길이 | ±2mm | 줄자 | 샘플링 | KS D 3503 |
|
|
| 재질 | 경도 | HRC 45-50 | 경도계 | 샘플링 | ASTM E18 |
|
|
| 도막 | 두께 | 60±10μm | 도막계 | 샘플링 | KS M 5000 |
|
|
| 도막 | 밀착력 | 5B 이상 | 크로스컷 | 샘플링 | ASTM D3359 |
|
|
| 외관 | 색상 | 표준색상 | 색차계 | 전수 | 사내규격 |
|
|
| ... | ... | ... | ... | ... | ... |
|
|
|
|
4. **테이블 컬럼 탭**
|
|
- 구분 (text, 80px)
|
|
- 검사항목 (text, 100px)
|
|
- 검사기준 (text, 150px)
|
|
- 검사방법 (text, 100px)
|
|
- 판정 (select: 적합/부적합, 100px)
|
|
- 비고 (text, 150px)
|
|
|
|
#### 1.2 검사항목 섹션 구성
|
|
|
|
현재 document-templates의 섹션 구조가 수입검사에 맞는지 확인하고 조정:
|
|
|
|
**확인 사항:**
|
|
- `document_template_sections`: 섹션(검사 항목 그룹)
|
|
- `document_template_section_items`: 개별 검사 항목
|
|
- 필드: category, item, standard, method, frequency, regulation
|
|
|
|
#### 1.3 문서 생성 테스트
|
|
|
|
MNG `/documents/create`에서:
|
|
1. 수입검사 성적서 템플릿 선택
|
|
2. 기본 정보 입력 (품목, 검사일, 검사자 등)
|
|
3. 검사 항목별 판정 입력
|
|
4. 저장
|
|
|
|
#### 1.4 미리보기 기능 구현/확인
|
|
|
|
`document-templates/edit.blade.php`의 미리보기 모달이 수입검사 성적서 양식을 제대로 출력하는지 확인:
|
|
|
|
**미리보기 출력 형태:**
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 수입검사 성적서 │
|
|
│ (주)SAM │
|
|
│ │
|
|
│ 결재 ┌────┬────┬────┐ │
|
|
│ │작성│검토│승인│ │
|
|
│ ├────┼────┼────┤ │
|
|
│ │ │ │ │ │
|
|
│ └────┴────┴────┘ │
|
|
│ │
|
|
│ [기본 정보] │
|
|
│ 품목코드: A001 품목명: 가이드레일 │
|
|
│ 검사일: 2025-01-28 검사자: 김철수 │
|
|
│ LOT번호: 250128-01 │
|
|
│ │
|
|
│ [검사 항목] │
|
|
│ ┌──────┬──────┬──────────┬──────┬──────┬──────┐ │
|
|
│ │ 구분 │ 항목 │ 규격 │ 방법 │ 판정 │ 비고 │ │
|
|
│ ├──────┼──────┼──────────┼──────┼──────┼──────┤ │
|
|
│ │겉모양│ 외관 │흠집,녹無 │ 육안 │ │ │ │
|
|
│ │ 치수 │ 두께 │ ±0.1mm │ 계측 │ │ │ │
|
|
│ │ 치수 │ 폭 │ ±1mm │ 계측 │ │ │ │
|
|
│ └──────┴──────┴──────────┴──────┴──────┴──────┘ │
|
|
│ │
|
|
│ 종합 판정: □ 적합 □ 부적합 □ 조건부적합 │
|
|
│ 비고: │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
### 4.2 Phase 2: API 백엔드 (후속 작업)
|
|
|
|
> Phase 1 완료 후 진행
|
|
|
|
- 검사 템플릿 조회 API
|
|
- 제품-양식 매핑 테이블
|
|
- 문서 생성/조회 API 확장
|
|
|
|
### 4.3 Phase 3: React 연동 (최종 작업)
|
|
|
|
> Phase 2 완료 후 진행
|
|
|
|
- 검사항목 동적 로드
|
|
- 검사 결과 저장/조회
|
|
|
|
---
|
|
|
|
## 5. 컨펌 대기 목록
|
|
|
|
| # | 항목 | 변경 내용 | 영향 범위 | 상태 |
|
|
|---|------|----------|----------|------|
|
|
| 1 | 수입검사 템플릿 구조 | 기본정보 + 검사항목 20종 구성 | mng/document-templates | ⏳ 대기 |
|
|
| 2 | 미리보기 출력 형식 | 성적서 양식 레이아웃 | mng/edit.blade.php | ⏳ 대기 |
|
|
|
|
---
|
|
|
|
## 6. 변경 이력
|
|
|
|
| 날짜 | 항목 | 변경 내용 | 파일 | 승인 |
|
|
|------|------|----------|------|------|
|
|
| 2025-01-28 | - | 계획 문서 초안 작성 | - | - |
|
|
|
|
---
|
|
|
|
## 7. 참고 문서
|
|
|
|
- **문서관리 시스템 계획**: `docs/plans/document-management-system-plan.md`
|
|
- **API 규칙**: `docs/reference/api-rules.md`
|
|
- **DB 스키마**: `docs/specs/database-schema.md`
|
|
- **품질 체크리스트**: `docs/reference/quality-checklist.md`
|
|
|
|
---
|
|
|
|
## 8. 세션 및 메모리 관리 정책
|
|
|
|
### 8.1 세션 시작 시
|
|
```javascript
|
|
read_memory("inspection-document-state")
|
|
read_memory("inspection-document-snapshot")
|
|
```
|
|
|
|
### 8.2 Serena 메모리 구조
|
|
- `inspection-document-state`: { phase, progress, next_step }
|
|
- `inspection-document-snapshot`: 코드 변경점 및 논의 요약
|
|
|
|
---
|
|
|
|
## 9. 검증 결과
|
|
|
|
### 9.1 테스트 케이스 (Phase 1)
|
|
|
|
| 입력값 | 예상 결과 | 실제 결과 | 상태 |
|
|
|--------|----------|----------|------|
|
|
| MNG에서 수입검사 템플릿 생성 | 기본정보 + 20종 검사항목 저장 | - | ⏳ |
|
|
| 템플릿 미리보기 클릭 | 성적서 양식 출력 | - | ⏳ |
|
|
| MNG에서 문서 생성 | 템플릿 기반 문서 작성 가능 | - | ⏳ |
|
|
| 문서 상세 보기 | 입력 데이터 표시 | - | ⏳ |
|
|
|
|
### 9.2 성공 기준 달성 현황
|
|
|
|
| 기준 | 달성 | 비고 |
|
|
|------|------|------|
|
|
| MNG 템플릿 생성 (20종 검사항목) | ⏳ | Phase 1.1-1.2 |
|
|
| 미리보기 성적서 양식 출력 | ⏳ | Phase 1.4 |
|
|
| MNG 문서 생성/조회 | ⏳ | Phase 1.3 |
|
|
|
|
---
|
|
|
|
## 10. 자기완결성 점검 결과
|
|
|
|
### 10.1 체크리스트 검증
|
|
|
|
| # | 검증 항목 | 상태 | 비고 |
|
|
|---|----------|:----:|------|
|
|
| 1 | 작업 목적이 명확한가? | ✅ | 섹션 1.1 |
|
|
| 2 | 성공 기준이 정의되어 있는가? | ✅ | 섹션 9.2 |
|
|
| 3 | 작업 범위가 구체적인가? | ✅ | 섹션 2 |
|
|
| 4 | 의존성이 명시되어 있는가? | ✅ | 섹션 1.6, 7 |
|
|
| 5 | 참고 파일 경로가 정확한가? | ✅ | 섹션 3, 4 |
|
|
| 6 | 단계별 절차가 실행 가능한가? | ✅ | 섹션 3, 4 |
|
|
| 7 | 검증 방법이 명시되어 있는가? | ✅ | 섹션 9.1 |
|
|
| 8 | 모호한 표현이 없는가? | ✅ | API 스펙 구체화 |
|
|
|
|
### 10.2 새 세션 시뮬레이션 테스트
|
|
|
|
| 질문 | 답변 가능 | 참조 섹션 |
|
|
|------|:--------:|----------|
|
|
| Q1. 이 작업의 목적은 무엇인가? | ✅ | 1.1 배경 |
|
|
| Q2. 어디서부터 시작해야 하는가? | ✅ | 2.1 Phase 1 |
|
|
| Q3. 어떤 파일을 수정해야 하는가? | ✅ | 4. 상세 작업 |
|
|
| Q4. 작업 완료 확인 방법은? | ✅ | 9. 검증 결과 |
|
|
| Q5. 막혔을 때 참고 문서는? | ✅ | 7. 참고 문서 |
|
|
|
|
**결과**: 5/5 통과 → ✅ 자기완결성 확보
|
|
|
|
---
|
|
|
|
*이 문서는 /plan 스킬로 생성되었습니다.* |