Files
sam-docs/features/quality-management/inspection-management.md
권혁성 bfcd6178ea docs: [quality] 품질관리 시스템 기능 문서 작성
- README.md: 전체 개요, 역할별 프로세스 플로우, 메뉴 구조, 데이터 구조, API, 스토리보드 참조
- inspection-management.md: 제품검사 관리 (15개 검사항목, 상태판정, 캘린더뷰, 요청서/성적서 양식)
- performance-reports.md: 생산실적신고 (자동생성, 확정, 누락체크, 건기원 프로세스)
- quality-certification-audit.md: 품질인정심사 (기준/매뉴얼 심사 + 로트 추적 심사)
- INDEX.md에 품질관리 문서 등록
2026-03-09 22:36:15 +09:00

13 KiB

제품검사 관리 (Inspection Management)

작성일: 2026-03-09 상태: 운영 중 URL: /quality/inspections


1. 개요

1.1 목적

방화문 제품의 현장 출고 전 품질검사를 수행하고 검사성적서를 발행한다. 검사 완료 시 실적신고(PerformanceReport)를 자동 생성한다.

1.2 품질관리서 구조

품질관리서 (QualityDocument)
├── 기본정보: 채번, 현장명, 접수일, 검사자, 수주처
├── 관련자 정보 (options JSON):
│   ├── 건축공사장 정보
│   ├── 자재유통업자 정보
│   ├── 공사시공자 정보
│   └── 공사감리자 정보
├── 수주 연결 (QualityDocumentOrder, 1:N)
│   └── 개소 (QualityDocumentLocation, 1:N)
│       ├── 시공규격 (post_width, post_height)
│       ├── 검사 데이터 (inspection_data JSON)
│       └── 검사성적서 (Document EAV)
└── 실적신고 (PerformanceReport, 1:1)

1.3 화면 구성

목록 페이지 (슬라이드 5~6):

  • 상단: 날짜 필터 (전체/전전월/전월/금월/어제/오늘) + 검색
  • 통계 카드: 접수, 진행중, 완료 건수
  • 테이블: 품질관리서번호, 번호, 수주처, 개소, 실적신고 필수정보, 검사시기, 검사자, 상태, 작성자, 접수일
  • 하단: 캘린더 스케줄 (월간 뷰)

캘린더 뷰:

  • 월 단위 표시, 상태 필터(전체/진행중/완료)
  • 색상 구분: 완료(초록 배지), 진행중(파란 바)
  • 검사 완료 건: 홍길동 - 현장명 / 완료 형태
  • 검사 진행 건: 홍길동 - 현장명 / 진행중 형태 (날짜 범위 바)
  • 클릭 시 해당 제품검사 상세 화면으로 이동

상세 페이지 (슬라이드 7~9):

  • 기본 정보: 품질관리서번호, 현장명, 수주처, 접수일, 담당자, 연락처, 상태, 작성자
  • 관련자 정보 4개 섹션 (실적 신고 시 필수 정보)
  • 검사 정보: 검사방문요청일, 검사시작일, 검사종료일, 검사자
  • 현장 주소: 우편번호 찾기 + 상세주소
  • 수주 설정 정보: 수주 선택 버튼 → 수주별 개소 목록 (층수/부호/수주규격/시공규격/변경사유)
  • 하단 버튼: 검사제품요청서 보기, 제품검사성적서 보기, 검사 완료, 수정

2. 상태 관리

2.1 품질관리서 상태

상태 코드 조건
접수 received 생성 직후, 수주 미연결
진행중 in_progress 수주 연결됨 또는 일부 검사 진행
완료 completed 모든 개소 검사 완료 후 complete() 호출

2.2 개소별 검사 상태 (자동 판정)

상태 코드 판정 기준
대기 pending 검사 데이터 없음 (15개 항목 0개 + 사진 없음)
진행중 in_progress 일부 항목 입력 또는 사진 미등록
완료 completed 15개 항목 전부 입력 + 사진 1장 이상

2.3 상태 자동 재계산

개소별 검사 저장 시 → 개소 상태 자동 판정 → 품질관리서 상태 재계산:

  • 전부 pendingreceived
  • 하나라도 completed 또는 in_progressin_progress
  • 전부 completedin_progress (수동 complete() 필요)

3. 검사 항목

3.1 15개 검사 항목

# 분류 설명 판정값
1 appearanceProcessing 외관 가공 상태 pass/fail
2 appearanceSewing 외관 봉제 상태 pass/fail
3 appearanceAssembly 외관 조립 상태 pass/fail
4 appearanceSmokeBarrier 외관 차연재 상태 pass/fail
5 appearanceBottomFinish 외관 하부마감 상태 pass/fail
6 motor 기능 모터 작동 pass/fail
7 material 기능 소재 적합성 pass/fail
8 lengthJudgment 치수 가로 치수 OK/NG
9 heightJudgment 치수 세로 치수 OK/NG
10 guideRailGap 치수 가이드레일 간격 OK/NG
11 bottomFinishGap 치수 하부마감 간격 OK/NG
12 fireResistanceTest 시험 내화 시험 pass/fail
13 smokeLeakageTest 시험 차연 시험 pass/fail
14 openCloseTest 시험 개폐 시험 pass/fail
15 impactTest 시험 충격 시험 pass/fail

3.2 추가 데이터

설명 필수
productImages 제품 사진 URL 배열 완료 판정에 필수

4. 수주 연결

4.1 수주 선택

  • availableOrders(): 해당 수주처(client_id)의 미등록 수주 조회
  • 모달에서 복수 수주 선택 가능

4.2 개소 자동생성

수주 연결 시 각 수주의 root node(층/부호)마다 개소(Location) 자동생성:

수주 A (3개 root node)
├── 1F A호 → Location 1
├── 2F B호 → Location 2
└── 3F C호 → Location 3

수주 B (2개 root node)
├── 지하1F → Location 4
└── 1F → Location 5

4.3 개소 데이터

필드 설명 출처
order_item_id 대표 OrderItem root node의 첫 번째 품목
post_width 시공 가로 발주 규격에서 복사 (수정 가능)
post_height 시공 세로 발주 규격에서 복사 (수정 가능)
change_reason 변경 사유 규격 변경 시 입력

5. 문서 자동생성 (EAV)

5.1 제품검사요청서 (슬라이드 12~13)

  • Template ID: 66 (제품검사 요청서)
  • 트리거: 품질관리서 생성/수정 시 syncRequestDocument() 호출
  • 인쇄용 페이지 형태로 구분되어 표시 (인쇄, 공유, 닫기 버튼)

문서 구성:

┌─────────────────────────────────────────┐
│  제품검사요청서                            │
│  문서번호: ABC123 | 작성일자: 2025.11.11  │
│                                          │
│  승인라인: 작성 → 승인 → 승인 → 승인      │
│           홍길동   이름   이름   이름       │
│                                          │
│  ── 기본정보 ──                           │
│  수주처, 수주번호, 담당자, 연락처           │
│  현장명, 납품일, 총 개소, 접수일            │
│                                          │
│  ── 입력사항 (실적신고 필수 정보) ──        │
│  건축공사장: 현장명, 대지위치, 지번          │
│  자재유통업자: 회사명, 회사주소, 대표자명,   │
│               전화번호                     │
│  공사시공자: 회사명, 회사주소, 성명, 전화번호 │
│  공사감리자: 사무소명, 사무소주소, 성명,     │
│             전화번호                       │
│                                          │
│  ── 검사대상 사전 고지 정보 ──             │
│  No. 층수 부호 발주규격(가로/세로)          │
│              시공후규격(가로/세로) 변경사유   │
└─────────────────────────────────────────┘

주의 문구 (빨간색):

  • 발주 사이즈와 시공 완료된 사이즈가 다를 시 실질 범위를 넣어야 한다
  • 변경사유를 고지하여야 인정마을을 부착할 수 있다
  • 사전고지를 하지 않음으로 발생하는 문제의 귀책은 신청업체에 있다

5.2 제품검사성적서 (슬라이드 14~15)

  • 각 개소별 document_id로 EAV Document 참조
  • 검사 결과(inspection_data)를 EAV 필드로 저장
  • 개소별 페이지 단위: 1/50 형태의 페이지 네비게이션 (이전/이동/다음 버튼)

문서 구성:

┌─────────────────────────────────────────┐
│  제품검사성적서                            │
│  문서번호: ABC123 | 작성일자: 2025.11.11  │
│                                          │
│  제품명, 제품 LOT NO, 로트크기             │
│  제품코드, 검사일자                        │
│  수주처, 검사자                           │
│  현장명                                   │
│                                          │
│  ── 제품 사진 ──                          │
│  [IMG]        [IMG]                      │
│                                          │
│  ── 검사 항목 ──                          │
│  No. 검사항목    검사기준          검사 특정값 판정│
│  1   외모양                                    │
│      가공상태    사용상 해로운 결함이 없을 것     │
│      재봉상태    내화심에 의해 견고하게 접합      │
│      조립상태    핸드바 견고하게 조립되어야 함     │
│      연기차단재  연기차단재 가이드레일 W60,       │
│                 가이드레일 W50 (분체 설치)        │
│      하단마감재  내부 부재형상 설치 유무           │
│  2   모터       인정제품과 동일사양              │
│  3   재질       WY-SC780 인쇄상태 확인          │
│  4   치수                                      │
│      길이       수주 치수 ± 30mm               │
│      높이       수주 치수 ± 30mm               │
│      가이드레일  10 ± 5mm (측정부위 길이 100 이내)│
│      간격       가이드레일갑과 하단마감재 25mm 이내│
│  5   작동테스트  6mm 관절게이지 관통 여 150mm    │
│  6   내화시험    25mm 관절게이지 관통 유무        │
│  7   차연시험    10초 이상 자속되는 화염 발생 유무 │
│  8   개폐시험    전도/개폐 2.5~6.5m/min 등       │
│                                          │
│  특이사항:                                │
│  종합판정: 합격                            │
│                                          │
│  [이전] [1] /50 [이동] [다음]              │
└─────────────────────────────────────────┘

6. API

6.1 주요 엔드포인트

Method Path 설명
GET /quality/documents 목록
POST /quality/documents 생성
GET /quality/documents/{id} 상세
PUT /quality/documents/{id} 수정 (개소/규격 포함)
PATCH /quality/documents/{id}/complete 검사완료
POST /quality/documents/{id}/orders 수주 연결
DELETE /quality/documents/{id}/orders/{orderId} 수주 해제
POST /quality/documents/{id}/locations/{locId}/inspect 개소별 검사 저장

6.2 검사 저장 요청 예시

POST /quality/documents/1/locations/5/inspect
{
  "inspection_data": {
    "appearanceProcessing": "pass",
    "appearanceSewing": "pass",
    "appearanceAssembly": "pass",
    "appearanceSmokeBarrier": "pass",
    "appearanceBottomFinish": "pass",
    "motor": "pass",
    "material": "pass",
    "lengthJudgment": "OK",
    "heightJudgment": "OK",
    "guideRailGap": "OK",
    "bottomFinishGap": "OK",
    "fireResistanceTest": "pass",
    "smokeLeakageTest": "pass",
    "openCloseTest": "pass",
    "impactTest": "pass",
    "productImages": ["https://..."]
  }
}

7. 소스 파일

7.1 Backend

파일 역할
api/app/Models/Qualitys/QualityDocument.php 품질관리서 모델
api/app/Models/Qualitys/QualityDocumentLocation.php 개소 모델
api/app/Models/Qualitys/QualityDocumentOrder.php 수주 연결 모델
api/app/Services/QualityDocumentService.php 서비스 (770줄)
api/app/Http/Controllers/Api/V1/QualityDocumentController.php 컨트롤러

7.2 Frontend

파일 역할
react/src/components/quality/InspectionManagement/InspectionList.tsx 목록
react/src/components/quality/InspectionManagement/InspectionCreate.tsx 생성
react/src/components/quality/InspectionManagement/InspectionDetail.tsx 상세/수정
react/src/components/quality/InspectionManagement/OrderSelectModal.tsx 수주 선택
react/src/components/quality/InspectionManagement/ProductInspectionInputModal.tsx 검사 입력
react/src/components/quality/InspectionManagement/actions.ts Server Actions
react/src/components/quality/InspectionManagement/types.ts 타입 정의

관련 문서


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