From a320c85e9411ecf979a2f3eaface9c233a211bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Thu, 5 Mar 2026 16:37:31 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[quality]=20=ED=92=88=EC=A7=88=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=8A=A4=ED=86=A0=EB=A6=AC=EB=B3=B4=EB=93=9C=20D1.?= =?UTF-8?q?9=20=EB=B6=84=EC=84=9D=20=EB=AC=B8=EC=84=9C=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 - 17장 슬라이드 기반 개발 참조용 MD 문서 - 화면별 상세 명세 (제품검사, 실적신고, 품질인정심사) - 데이터 모델, 비즈니스 규칙, API 엔드포인트 설계 포함 Co-Authored-By: Claude Opus 4.6 --- .../quality-management-storyboard-analysis.md | 897 ++++++++++++++++++ 1 file changed, 897 insertions(+) create mode 100644 dev/dev_plans/quality/quality-management-storyboard-analysis.md diff --git a/dev/dev_plans/quality/quality-management-storyboard-analysis.md b/dev/dev_plans/quality/quality-management-storyboard-analysis.md new file mode 100644 index 0000000..2f5d115 --- /dev/null +++ b/dev/dev_plans/quality/quality-management-storyboard-analysis.md @@ -0,0 +1,897 @@ +# 품질관리 스토리보드 명세 (D1.9) + +> **소스**: SAM_MES_경동기업_품질관리_Storyboard_D1.9_260224 (17 slides) +> **용도**: API 설계 및 기능 구현 시 Claude 참조 문서 +> **작성일**: 2026-03-05 + +--- + +## 1. 전체 프로세스 플로우 + +### 1.1 역할 정의 + +| 역할 | 담당 업무 | +|------|----------| +| 매출 거래처 | 주문(전화/카톡/팩스/메일) | +| 견적/수주 담당자 | 견적 작성 → 수주 전환 → 수주서 작성 → 생산지시 생성 | +| 생산 담당자 | 생산 부서 할당 → 재고/원자재 체크 → 공정 작업 → 중간검사 → 생산 완료 | +| 출고 담당자 | 출고 대기 → 출고 완료 | +| 품질 담당자 | 제품검사 신청(거래처 요청) → 검사원 일정 관리 → 검사원 현장 방문 및 검사 진행 → 합격 여부 판정 → 실적 신고 관리 → 품질 인증 심사 | +| 자재 담당자 | 입고 등록 → 수입검사 | + +### 1.2 프로세스 흐름 + +``` +주문 접수 → 견적 작성 → 수주 전환 판단(미완료시 대기) + → 수주서 작성(견적서 선택) → 생산지시 생성 + → 재고 소요량 충분? → (부족 시) 자재 담당자: 입고등록 → 수입검사 + → 생산 부서 할당 → 재고/원자재 투입 체크 → 공정 작업 진행 → 중간검사 → 생산 완료 + → 출고 대기 → 출고 완료 + → 품질 담당자: 제품검사 신청 → 검사원 일정 관리 → 현장 방문 및 검사 → 합격? + → (합격) 실적 신고 관리 → 품질 인증 심사 + → (불합격) 재검사 루프 (점선으로 표시) + +* 분할 수주/생산/출고는 1차 이후 반복 가능 +``` + +--- + +## 2. 화면 명세 + +### 2.1 제품검사 목록 (슬라이드 2-3) + +**경로**: 품질관리 > 제품검사관리 +**URL 제안**: `/quality/product-inspections` + +#### 2.1.1 상단 요약 카드 + +| 필드 | 타입 | 설명 | +|------|------|------| +| 접수 | number | 접수 상태 건수 | +| 진행중 | number | 진행중 상태 건수 | +| 완료 | number | 완료 상태 건수 | + +#### 2.1.2 필터 + +| 필터 | 타입 | 옵션 | 기본값 | +|------|------|------|--------| +| 기간 | date_range | 시작일~종료일 | 최근 1개월 | +| 상태 바로가기 | button_group | 전체/접수/전점별/진행/미완/어제/오늘 | 전체 | +| 검색 | text | 키워드 검색 | - | + +#### 2.1.3 목록 테이블 + +| 컬럼 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| No. | row_number | - | 자동 번호 | +| 품질관리서 번호 | quality_doc_number | string | 품질관리서 고유번호 | +| 번호 | id | integer | PK | +| 수주처 | client_name | string | 거래처명 | +| 개소 | location_count | integer | 검사 대상 개소 수 | +| 실적신고 필수정보 | required_info_status | string | "3건 누락", "4건 누락" 등 빨간색 표시 | +| 검사기간 | inspection_period | date_range | 시작일~종료일 (여러 줄 가능) | +| 검사자 | inspector_name | string | 검사원 이름 | +| 상태 | status | enum | 접수/진행중/완료 | +| 작성자 | created_by | string | 등록자 | +| 접수일 | received_date | date | 접수 날짜 | + +**액션**: +- `제품검사 등록` 버튼 → 제품검사 상세 화면 (신규 생성 모드) +- 행 클릭 → 제품검사 상세 화면 (조회/수정 모드) + +#### 2.1.4 검사 스케줄 (캘린더) + +목록 하단에 월간 캘린더 표시. + +| 항목 | 설명 | +|------|------| +| 뷰 | 월간 캘린더 | +| 필터 | 상태 셀렉트 (전체/진행중/완료), 전체 V 토글 | +| 완료 스케줄 | 회색 바, 텍스트: "홍길동 - 현장명 / 완료" | +| 진행중 스케줄 | 파란 바, 텍스트: "홍길동 - 현장명 / 진행중" | +| 클릭 동작 | 제품검사 상세 화면으로 이동 | +| 표시 기간 | 검사시작일 ~ 검사종료일 기간으로 바 표시 | +| 접수 미표시 | 검사일 미정인 접수 건은 캘린더에 표시하지 않음 | + +--- + +### 2.2 제품검사 상세 (슬라이드 4-6) + +**경로**: 품질관리 > 제품검사관리 > 제품검사 상세 +**URL 제안**: `/quality/product-inspections/{id}` + +#### 2.2.1 기본 정보 섹션 + +| 필드 | 필드명(추정) | 타입 | 필수 | 설명 | +|------|-------------|------|:----:|------| +| 품질관리서 번호 | quality_doc_number | string | Y | 자동 채번 | +| 현장명 | site_name | string | Y | | +| 수주처 | client_name | string | Y | 회사명 드롭다운 | +| 접수일 | received_date | date | Y | | +| 담당자 | manager_name | string | Y | | +| 담당자 연락처 | manager_phone | string | Y | | +| 상태 | status | enum | Y | 접수/진행중/완료 | +| 작성자 | created_by | string | Y | 자동(로그인 사용자) | + +#### 2.2.2 건축공사장 정보 (실적 신고 시 필수) + +| 필드 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 현장명 | construction_site_name | string | | +| 대지위치 | land_location | string | | +| 지번 | lot_number | string | | + +#### 2.2.3 자재유통업자 정보 (실적 신고 시 필수) + +| 필드 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 회사명 | material_company_name | string | | +| 회사주소 | material_company_address | string | | +| 대표자명 | material_ceo_name | string | | +| 전화번호 | material_phone | string | | + +#### 2.2.4 공사시공자 정보 (실적 신고 시 필수) + +| 필드 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 회사명 | contractor_company_name | string | | +| 회사주소 | contractor_company_address | string | | +| 성명 | contractor_name | string | | +| 전화번호 | contractor_phone | string | | + +#### 2.2.5 공사감리자 정보 (실적 신고 시 필수) + +| 필드 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 사무소명 | supervisor_office_name | string | | +| 사무소주소 | supervisor_office_address | string | | +| 성명 | supervisor_name | string | | +| 전화번호 | supervisor_phone | string | | + +#### 2.2.6 검사 정보 섹션 + +| 필드 | 필드명(추정) | 타입 | 필수 | 설명 | +|------|-------------|------|:----:|------| +| 검사방문요청일 | inspection_request_date | date | Y | | +| 검사시작일 | inspection_start_date | date | Y | 상태가 '검사시작'에 도달하면 진행중으로 변경 | +| 검사종료일 | inspection_end_date | date | Y | | +| 검사자 | inspector_name | string | Y | 검사원 선택 | + +#### 2.2.7 현장 주소 + +| 필드 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 우편번호 | postal_code | string | 우편번호 찾기 버튼으로 검색 | +| 주소 | address | string | 자동 입력 | +| 상세주소 | address_detail | string | 수동 입력 | + +#### 2.2.8 수주 설정 정보 + +**설명**: 납품 규격과 시공 후 규격이 다를 경우 변경사유를 입력하세요. 사이즈가 동일하면 자동으로 동일로 표시합니다. + +**수주 선택 버튼** → 수주 선택 팝업 호출 + +**수주 목록 테이블 (접힌 상태)**: + +| 컬럼 | 타입 | 설명 | +|------|------|------| +| 수주번호 | string | | +| 현장명 | string | | +| 납품일 | date | | +| 개소 | integer | 해당 수주의 개소 수 | +| 삭제 | button | 휴지통 아이콘 | + +**수주 목록 테이블 (펼친 상태 - 행 클릭 시 아코디언 확장)**: + +| 컬럼 | 타입 | 설명 | +|------|------|------| +| 층수 | string | 예: 1층, 2층 | +| 부호 | string | 예: 부호명 | +| 발주 규격 - 가로 | number | mm 단위 | +| 발주 규격 - 세로 | number | mm 단위 | +| 시공후 규격 - 가로 | number | 변경 시 직접 입력 | +| 시공후 규격 - 세로 | number | 변경 시 직접 입력 | +| 변경사유 | string | 규격 변경 시 입력 | +| 검사하기 | button | 제품검사 팝업 호출 | + +**하단 집계**: + +| 항목 | 설명 | +|------|------| +| 총 개소 | 전체 개소 수 합계 | +| 동일 | 발주 규격 = 시공후 규격인 개소 수 | +| 변경 | 발주 규격 != 시공후 규격인 개소 수 | + +#### 2.2.9 하단 액션 버튼 + +| 버튼 | 동작 | 조건 | +|------|------|------| +| 검사제품요청서 보기 | 검사제품요청서 팝업 호출 | - | +| 제품검사성적서 보기 | 제품검사성적서 팝업 호출 | - | +| 검사 완료 | 상태를 '완료'로 변경 | 모든 개소 검사 완료 시 활성화 | +| 수정 | 정보 저장 | - | + +--- + +### 2.3 수주 선택 팝업 (슬라이드 7) + +**호출 위치**: 제품검사 상세 > 수주 선택 버튼 + +| 항목 | 설명 | +|------|------| +| 검색 | 키워드 검색 | +| 표시 데이터 | 검사등록되지 않은 수주만 표시 | +| 선택 방식 | 체크박스 다중 선택 | +| 표시 정보 | 총 N건, N건 선택 | + +**목록 컬럼**: + +| 컬럼 | 타입 | 설명 | +|------|------|------| +| 체크박스 | boolean | 다중 선택 | +| 수주번호 | string | | +| 현장명 | string | | +| 납품일 | date | | +| 개소 | integer | | + +**액션**: +- `선택` → 팝업 닫힘, 제품검사 상세 화면에 선택된 수주 목록 반영 +- `취소` → 팝업 닫힘 + +--- + +### 2.4 제품검사 팝업 (슬라이드 8) + +**호출 위치**: 제품검사 상세 > 수주 펼침 > 검사하기 버튼 + +제품 유형에 따라 2가지 검사 폼이 존재: + +#### 2.4.1 Type A: 갈모양 검사 (좌측 팝업) + +**상단 필드**: + +| 필드 | 타입 | 설명 | +|------|------|------| +| 제품명 | text (readonly) | 자동 표시 | +| 규격 | text (readonly) | 자동 표시 | +| 제품 사진 2장 | file_upload | 클릭하여 파일을 찾거나, 마우스로 파일을 끌어오세요 | + +**검사 항목 (각각 적합/부적합 토글)**: + +| 검사항목 | 필드명(추정) | 입력 방식 | +|---------|-------------|----------| +| 갈모양 가공상태 | galmotype_processing | 적합/부적합 버튼 | +| 갈모양 재봉상태 | galmotype_sewing | 적합/부적합 버튼 | +| 갈모양 조립상태 | galmotype_assembly | 적합/부적합 버튼 | +| 갈모양 연기차단재 | galmotype_smoke_barrier | 적합/부적합 버튼 | +| 갈모양 하단마감재 | galmotype_bottom_finish | 적합/부적합 버튼 | +| 모터 | motor | 적합/부적합 버튼 | + +#### 2.4.2 Type B: 치수/성능 검사 (우측 팝업) + +**검사 항목**: + +| 검사항목 | 필드명(추정) | 입력 방식 | 설명 | +|---------|-------------|----------|------| +| 재질 | material | 적합/부적합 버튼 | | +| 길이 | length | number + 적합/부적합 | 실측값 입력 | +| 높이 | height | number + 적합/부적합 | 실측값 입력 | +| 가이드레일 홈간격 | guide_rail_gap | number + 적합/부적합 | 실측값 입력 | +| 하단마감재 간격 | bottom_finish_gap | number + 적합/부적합 | 실측값 입력 | +| 내화시험, 차연시험, 개폐시험, 내충격시험 | fire_smoke_open_impact_test | 적합/부적합 버튼 | 4가지 시험 통합 | +| 특이사항 | remarks | textarea | 자유 입력 | + +**입력 방식 규칙**: +- 디폴트: 적합값 입력/선택 상태 (오렌지=적합, 검정=부적합) +- 특이사항 인포박스 존재 + +**액션**: +- `취소` → 팝업 닫힘 +- `검사 완료` → 검사 결과 저장, 팝업 닫힘 + +--- + +### 2.5 검사제품요청서 (슬라이드 9-10) + +**호출 위치**: 제품검사 상세 > 검사제품요청서 보기 버튼 +**성격**: 인쇄/공유 가능한 공식 문서 (팝업) +**URL 제안**: `/quality/product-inspections/{id}/request-document` + +#### 2.5.1 문서 헤더 + +| 항목 | 설명 | +|------|------| +| 인쇄 버튼 | 브라우저 인쇄 | +| 공유 버튼 | 공유 기능 | +| 닫기 버튼 | 팝업 닫기 | +| 결재란 | 작성 / 승인 / 승인 (3단계) | +| 문서번호 | 예: ABC123 | +| 작성일자 | 예: 2025년 11월 11일 | + +#### 2.5.2 기본정보 + +| 필드 | 소스 | +|------|------| +| 수주처 / 회사명 | 제품검사 상세 > 기본정보 | +| 수주번호 | 수주 설정 정보 | +| 담당자 / 담당자연락처 | 제품검사 상세 > 기본정보 | +| 현장명 / 현장주소 | 제품검사 상세 | +| 납품일 | 수주 정보 | +| 총 개소 | 수주 설정 합계 | +| 접수일 | 제품검사 상세 > 기본정보 | +| 검사방문요청일(현재예정) | 제품검사 상세 > 검사정보 | + +#### 2.5.3 입력사항 + +| 섹션 | 필드 | 소스 | +|------|------|------| +| 건축공사장 | 현장명, 대지위치, 지번 | 제품검사 상세 2.2.2 | +| 자재유통업자 | 성명, 회사명, 회사주소, 전화번호 | 제품검사 상세 2.2.3 | +| 공사시공자 | 성명, 회사명, 회사주소, 전화번호 | 제품검사 상세 2.2.4 | +| 공사감리자 | 성명, 사무소명, 사무소주소, 전화번호 | 제품검사 상세 2.2.5 | + +#### 2.5.4 검사 요청 시 참고사항 (빨간 글씨) + +``` +발주 사이즈와 시공 완료된 사이즈가 다를 시, 실정 변경을 부착하셔야 됩니다. +제품검사를 위한 방문 전까지 +변경사유를 고지하셔야 인정마필을 부착할 수 있습니다. +(사전고지를 하지 않으므로 발생하는 문제의 귀책은 신청업체에 있습니다.) +``` + +#### 2.5.5 검사대상 사전 고지 정보 테이블 + +| 컬럼 | 설명 | +|------|------| +| No. | 순번 | +| 층수 | 층수 | +| 부호 | 부호 | +| 오픈사이즈 - 발주 규격 (가로/세로) | 발주 시 규격 | +| 오픈사이즈 - 시공후 규격 (가로/세로) | 시공 후 실측 규격 | +| 변경사유 | 규격 변경 사유 | + +--- + +### 2.6 제품검사성적서 (슬라이드 11-12) + +**호출 위치**: 제품검사 상세 > 제품검사성적서 보기 버튼 +**성격**: 인쇄/공유 가능한 공식 문서 (팝업), 페이지네이션 있음 +**URL 제안**: `/quality/product-inspections/{id}/result-document` + +#### 2.6.1 문서 헤더 + +결재란: 작성 / 승인 / 승인 (3단계, 검사요청서와 동일 구조) + +#### 2.6.2 기본정보 + +| 필드 | 설명 | +|------|------| +| 제품명 | | +| 제품코드 | | +| 수주처 | | +| 현장명 | | +| 제품 LOT NO | | +| 로트크기 | | +| 검사일자 | | +| 검사자 | | + +#### 2.6.3 제품 사진 + +좌우 2장의 이미지 표시 영역 (IMG 플레이스홀더) + +#### 2.6.4 검사 항목 테이블 + +| No. | 검사항목 | 세부 | 검사기준 | 검사결과 | 검사주기 | 특징값 | 판정 | +|-----|---------|------|---------|---------|---------|-------|------| +| 1 | 갈모양 | 가공상태 | 사용상 해로운 결함이 없을 것 | 검사결과 | - | 특징값 | 적합/부적합 체크 | +| 1 | 갈모양 | 재봉상태 | 내화실에 의해 견고하게 접합되어야 함 | | | | | +| 1 | 갈모양 | 조립상태 | 엔드바의 견고하게 조립되어야 함 | | | | | +| 1 | 갈모양 | 연기차단재 | 엔드가이드 갈모사이 MV(L), W80, 가이드레일 W50 (홈에 설치) | 판정: 합수량 시 | | | | +| 1 | 갈모양 | 하단마감재 | 내부 부재정렬 삽입 유무 | | | | | +| 2 | 모터 | - | 인장제품과 동일사양 | | | | | +| 3 | 재질 | - | WY-SC780 인쇄상태 확인 | | | | | +| 4 | 치수(오픈사이즈) | 길이 | 수주 치수 +/- 30mm | 실측값 입력 | | | 적합/부적합 | +| 4 | 치수(오픈사이즈) | 높이 | 수주 치수 +/- 30mm | 실측값 입력 | | | | +| 4 | 치수(오픈사이즈) | 가이드레일 홈간격 | 10 +/- 5mm (측정부위: 상·중·하 높이 100 이내) | 측정값 (상+중+하) | | | | +| 4 | 치수(오픈사이즈) | 간격 | 가이드레일과 하단마감재 통싸 25mm 이내 | | | | | +| 5 | 작동테스트 | 개폐성능 | 6mm 균열게이지 관통 +/- 150mm 이동 유무 | | | | | +| 6 | 내화시험 | 비차열 | 25mm 균열게이지 관통 유무 | | | | | +| 7 | 차연시험 | 공기누설량 | 25Pa 일 때 공기누설량 0.9m3/min-m2 이하 | | 기간: 1회/5년 | | 시험 성적서 | +| 8 | 개폐시험 | - | 제품의 원활한 작동 | | | | | +| 8 | 개폐시험 | 평균속도 | 전도개폐 2.5~6.5m/min | | 시험 성적서 | | | +| 8 | 개폐시험 | 자중강하 | 자중강하 3~7m/min | | | | | +| 8 | 개폐시험 | - | 개폐 시 상부 및 하부 끝부분에서 자동정지 | | | | | +| 8 | 개폐시험 | - | 강하 중 일의의 위치에서 자동정지 | | | | | + +#### 2.6.5 하단 + +| 필드 | 설명 | +|------|------| +| 특이사항 | 텍스트 영역 | +| 종합판정 | 합격/불합격 | + +#### 2.6.6 페이지네이션 + +- 개소(제품) 단위로 페이지 구분 +- 이전/다음 버튼 +- 페이지 번호 직접 입력 이동 (예: 1 / 50) +- 디폴트: 현재 페이지 (수정 가능) + +--- + +### 2.7 실적신고 목록 (슬라이드 13-15) + +**경로**: 품질관리 > 실적신고관리 +**URL 제안**: `/quality/performance-reports` + +#### 2.7.1 탭 구조 + +| 탭 | 설명 | +|----|------| +| 분기별 실적신고 | 기본 탭 | +| 누락체크 | 누락 건 확인 | + +#### 2.7.2 분기별 실적신고 탭 + +**필터**: + +| 필터 | 타입 | 옵션 | 기본값 | +|------|------|------|--------| +| 연도 | select | 연도 목록 | 현재 연도 | +| 분기 | button_group | 전체/1분기/2분기/3분기/4분기 | 전체 | +| 검색 | text | 키워드 | - | + +**상태 카운트**: + +| 상태 | 설명 | +|------|------| +| 확정 | 실적신고 확정 건수 | +| 미확정 | 미확정 건수 | +| 신고완료 | 신고 완료 건수 | +| 미신고 | 미신고 건수 | + +**목록 테이블**: + +| 컬럼 | 필드명(추정) | 타입 | 설명 | +|------|-------------|------|------| +| 체크박스 | selected | boolean | 다중 선택 | +| 품질관리서 번호 | quality_doc_number | string | | +| 작성일 | created_date | date | | +| 현장명 | site_name | string | | +| 수주처 | client_name | string | | +| 개소 | location_count | integer | | +| 필수정보 | required_info_status | string | "3건 누락", "4건 누락" 빨간색 표시 | +| 확정상태 | confirmation_status | enum | 확정/미확정 | +| 확정일 | confirmed_date | date | 확정 시 날짜 | +| 메모 | memo | string | | + +**액션 버튼**: + +| 버튼 | 동작 | 설명 | +|------|------|------| +| 선택 확정 | 선택한 목록을 확정 상태로 변경 | 체크박스 선택 필요 | +| 확정 해제 | 선택한 목록을 미확정으로 변경 | 체크박스 선택 필요 | +| 메모 | 메모 팝업 호출 | 체크박스 선택 필요 | +| 확정건 엑셀다운로드 | 확정된 건만 엑셀 다운로드 | | + +**필터 상태 셀렉트**: 전체/확정/미확정 (디폴트: 전체) + +#### 2.7.3 메모 팝업 (슬라이드 14) + +| 항목 | 설명 | +|------|------| +| 표시 정보 | 품질관리서 N건, 총 N 개소 | +| 메모 | textarea 입력 | +| 작성 버튼 | 클릭 시 선택된 목록의 메모에 일괄 적용 | +| 취소 버튼 | 팝업 닫힘 | + +#### 2.7.4 누락체크 탭 (슬라이드 15) + +**설명 문구**: +``` +실적신고 누락 체크 +납품 완료된 수주건 중 제품검사 미등록 건 확인합니다. + +누락 발생 원인 +- 품질관리서 발행일 기준 분기에 포함되어야 하나, 공사 미완료로 다음 분기로 이월 시 누락 +- 수주등록 시 다른 현장명으로 등록되어 제품검사 매핑 시 누락 +- 납품 후 제품검사 등록이 누락된 경우 +``` + +**목록 테이블**: + +| 컬럼 | 타입 | 설명 | +|------|------|------| +| 품질관리서 번호 | string | | +| 현장명 | string | | +| 수주처 | string | | +| 개소 | integer | | +| 제품검사완료일 | date | | +| 메모 | string | | + +**비즈니스 로직**: 납품 완료(출고 완료)되었으나 제품검사가 미등록이거나 기간이 지났지만 확정이 안된 목록 + +--- + +### 2.8 품질인정심사 - 기준/매뉴얼 심사 (슬라이드 16) + +**경로**: 품질관리 > 품질인정심사 +**URL 제안**: `/quality/certification-audit` + +#### 2.8.1 탭 구조 + +| 탭 | 진행률 | 설명 | +|----|--------|------| +| 기준/매뉴얼 심사 | 2/15 | 기준 문서 및 매뉴얼 확인 | +| 로트 추적 심사 | 7/12 | 제품 로트 추적 확인 | + +**전체 심사 진행률**: 9/27 (기준/매뉴얼 + 로트추적 합계) + +- 기준/매뉴얼: N/N +- 로트추적: N/N + +#### 2.8.2 필터 + +| 필터 | 타입 | 옵션 | +|------|------|------| +| 연도 | select | 연도 목록 | +| 분기 | button_group | 전체/1분기/2분기/3분기/4분기 | +| 검색 | text | 키워드 | + +#### 2.8.3 좌측: 점검표 항목 + +트리 구조: + +``` +> 1. 제목 + [v] 1. 항목 --- 완료 + [v] 2. 항목 --- 완료 + [ ] 3. 항목 +> 2. 제목 + [ ] 1. 항목 + [ ] 2. 항목 + [ ] 3. 항목 +``` + +- 각 항목에 완료 체크 표시 +- 항목 클릭 시 우측에 상세 표시 +- 진행률: 완료 항목 수 / 전체 항목 수 + +#### 2.8.4 우측 상단: 기준 문서화 + +| 항목 | 설명 | +|------|------| +| 항목명 | 선택된 점검표 항목명 | +| 소거 | 해당 없음 시 소거 처리 | +| 관련 기준 문서 | 연결된 문서명 + 다운로드 아이콘 | + +#### 2.8.5 우측 하단: 문서명 + +| 항목 | 설명 | +|------|------| +| 문서명 | 파일명 표시 | +| 미리보기 | 문서 미리보기 (이미지/PDF) | +| 페이지 정보 | 예: 파일명.pdf, 1 / 1 페이지 | + +#### 2.8.6 완료 체크 박스 + +- 디폴트: 열림 상태 +- 클릭: 완료 설정/해제 토글 + +#### 2.8.7 기준/매뉴얼 확인 버튼 + +- 클릭: 확인 완료 스티커로 변경 표시 + +--- + +### 2.9 품질인정심사 - 로트 추적 심사 (슬라이드 17) + +**경로**: 품질관리 > 품질인정심사 > 로트 추적 심사 탭 +**URL 제안**: `/quality/certification-audit` (같은 페이지, 탭 전환) + +#### 2.9.1 좌측: 품질관리서 목록 + +**표시 조건**: 해당 분기로 실적신고 확정된 품질관리서 + +| 항목 | 설명 | +|------|------| +| 품질관리서 번호 | 예: KD-SS-2024- | +| 해당 분기 | 예: 2025년 3분기 | +| 현장명 | | +| 인정등록 | 인정등록 정보 | +| 수주코드 건수 | 예: 수주코드 2건 | +| 개소수 | | +| 진행률 | 예: 14% (완료/전체) | + +클릭 시 → 우측에 수주코드 목록 표시 + +#### 2.9.2 중앙: 수주코드 목록 + +**표시 조건**: 해당 품질관리서에 연결된 수주코드 목록 + +| 항목 | 설명 | +|------|------| +| 수주코드 번호 | 예: KD-SS-240921-19 | +| 수주처 | | +| 수주일 | | +| 개소 수 | | +| 현장 | | +| 개소별 제품코드 확인 | 완료 수 / 전체 개소 수 (예: 0건 확인) | + +클릭 시 → 우측에 해당 수주코드의 개소별 제품코드 목록 표시 + +#### 2.9.3 우측 상단: 개소별 제품코드 목록 + +| 컬럼 | 설명 | +|------|------| +| 수주코드 | | +| 일련번호 | | +| 확인 버튼 | 확인/완료 토글 | + +#### 2.9.4 우측 하단: 확인 서류 목록 + +| 서류 종류 | 설명 | +|----------|------| +| 수입검사 성적서 | | +| 수주서 | | +| 수주서, 작업일지 | | +| 중간검사 성적서 | | +| 납품확인서, 출고증, 제품검사 성적서, 품질관리서 | | + +- 각 서류 클릭 시 → 해당 문서 영역 열림/닫힘 토글 +- 문서 미리보기 기능 제공 (이미지/PDF) + +#### 2.9.5 확인 서류 구조 (계층) + +``` +품질관리서 +└── 수주코드 + └── 개소별 제품코드 + └── 확인 서류 + ├── 수입검사 성적서 + ├── 수주서 + ├── 작업일지 + ├── 중간검사 성적서 + ├── 납품확인서 + ├── 출고증 + ├── 제품검사 성적서 + └── 품질관리서 +``` + +--- + +## 3. 데이터 모델 관계 + +### 3.1 핵심 엔티티 관계도 + +``` +[품질관리서 quality_documents] +├── 1:N → [품질관리서_수주 quality_document_orders] → N:1 [수주 orders] +│ └── 1:N → [수주_개소 order_locations] +│ ├── 발주규격 (가로/세로) +│ ├── 시공후규격 (가로/세로) +│ ├── 변경사유 +│ └── 1:1 → [제품검사결과 inspection_results] +│ ├── 검사항목별 적합/부적합 +│ ├── 실측값 +│ ├── 사진 2장 +│ └── 특이사항 +├── 건축공사장 정보 (JSON options 또는 별도 섹션) +├── 자재유통업자 정보 +├── 공사시공자 정보 +├── 공사감리자 정보 +├── 검사정보 (요청일, 시작일, 종료일, 검사자) +└── 현장주소 + +[실적신고 performance_reports] +├── quality_document_id → FK [품질관리서] +├── 분기 (year, quarter) +├── 확정상태 +├── 확정일 +└── 메모 + +[품질인정심사 certification_audits] +├── 기준/매뉴얼 심사 항목 +│ ├── 점검표 항목 (트리 구조) +│ ├── 기준 문서 연결 +│ └── 완료 상태 +└── 로트 추적 심사 + ├── 품질관리서 → 수주코드 → 개소별 제품코드 + └── 확인 서류 목록 +``` + +### 3.2 options JSON 활용 후보 + +SAM 프로젝트 컬럼 추가 정책(FK/조인키만 컬럼, 나머지 options JSON)에 따라: + +| 엔티티 | options에 저장할 필드 | +|--------|---------------------| +| 품질관리서 | 건축공사장 정보, 자재유통업자 정보, 공사시공자 정보, 공사감리자 정보, 현장주소 | +| 수주_개소 검사결과 | 검사항목별 결과(적합/부적합), 실측값, 특이사항 | +| 실적신고 | 메모 | +| 품질인정심사 항목 | 소거 여부, 기준문서 연결 정보 | + +--- + +## 4. 비즈니스 규칙 + +### 4.1 상태 머신 + +#### 제품검사 상태 + +``` +접수 → 진행중 → 완료 + ↑ | + └─────────┘ (재검사 시) +``` + +| 상태 | 트리거 | 조건 | +|------|--------|------| +| 접수 | 제품검사 등록 시 | 초기 상태 | +| 진행중 | 검사시작일 도달 또는 첫 검사 진행 시 | 검사자, 검사시작일 입력 완료 | +| 완료 | 검사 완료 버튼 클릭 | 모든 개소의 검사가 완료되어야 함 | + +#### 실적신고 확정 상태 + +``` +미확정 → 확정 → 신고완료 + ↑ | + └───────┘ (해제 시) +``` + +| 상태 | 트리거 | 조건 | +|------|--------|------| +| 미확정 | 제품검사 완료 시 자동 생성 | | +| 확정 | 선택 확정 버튼 | 실적신고 필수정보(건축공사장/자재유통업자/공사시공자/공사감리자) 모두 입력 | +| 신고완료 | 외부 신고 처리 후 | | + +### 4.2 실적신고 필수정보 검증 + +실적신고를 확정하려면 제품검사 상세의 다음 정보가 모두 입력되어야 함: +- 건축공사장 정보 (현장명, 대지위치, 지번) +- 자재유통업자 정보 (회사명, 회사주소, 대표자명, 전화번호) +- 공사시공자 정보 (회사명, 회사주소, 성명, 전화번호) +- 공사감리자 정보 (사무소명, 사무소주소, 성명, 전화번호) + +**누락 표시**: 목록에서 "3건 누락", "4건 누락" 등 빨간색으로 표시 → 실적신고 시점에서는 반드시 입력해야 함 + +### 4.3 규격 변경 로직 + +- 발주 규격(가로/세로)과 시공후 규격(가로/세로) 비교 +- 동일하면 자동으로 "동일" 분류 +- 다르면 "변경" 분류 + 변경사유 필수 입력 +- 하단 집계: 총 개소, 동일, 변경 카운트 표시 + +### 4.4 검사 항목 판정 기준 + +| No. | 항목 | 합격 기준 | +|-----|------|----------| +| 1 | 갈모양 - 가공상태 | 사용상 해로운 결함 없을 것 | +| 1 | 갈모양 - 재봉상태 | 내화실에 의해 견고하게 접합 | +| 1 | 갈모양 - 조립상태 | 엔드바 견고하게 조립 | +| 1 | 갈모양 - 연기차단재 | MV(L) W80, 가이드레일 W50 홈에 설치 | +| 1 | 갈모양 - 하단마감재 | 내부 부재정렬 삽입 유무 | +| 2 | 모터 | 인장제품과 동일사양 | +| 3 | 재질 | WY-SC780 인쇄상태 확인 | +| 4 | 길이 | 수주 치수 +/- 30mm | +| 4 | 높이 | 수주 치수 +/- 30mm | +| 4 | 가이드레일 홈간격 | 10 +/- 5mm (상중하 높이 100 이내) | +| 4 | 간격 | 가이드레일과 하단마감재 통싸 25mm 이내 | +| 5 | 개폐성능 | 6mm 균열게이지 관통 +/- 150mm 이동 유무 | +| 6 | 내화시험 | 25mm 균열게이지 관통 유무 | +| 7 | 차연시험 | 25Pa 시 공기누설량 0.9m3/min-m2 이하 | +| 8 | 개폐시험 - 평균속도 | 전도개폐 2.5~6.5m/min | +| 8 | 개폐시험 - 자중강하 | 3~7m/min | +| 8 | 개폐시험 - 자동정지 | 상부/하부 끝, 임의위치 자동정지 | + +### 4.5 누락체크 로직 + +납품 완료(출고 완료)되었으나 제품검사가 미등록인 건을 자동 감지: +- 품질관리서 발행일 기준 분기 포함 여부 +- 공사 미완료로 다음 분기 이월 시 누락 +- 수주등록 시 다른 현장명으로 등록되어 매핑 누락 +- 납품 후 제품검사 등록 자체 누락 + +### 4.6 품질인정심사 로직 + +#### 기준/매뉴얼 심사 +- 점검표 항목을 트리 구조로 관리 +- 각 항목별 기준 문서 연결 +- 항목별 완료 체크 +- 전체 진행률 = 완료 항목 / 전체 항목 + +#### 로트 추적 심사 +- 해당 분기 실적신고 확정 건 기준 +- 품질관리서 → 수주코드 → 개소별 제품코드 3단계 드릴다운 +- 각 제품코드별 확인 서류 8종 검증 +- 확인 서류: 수입검사 성적서, 수주서, 작업일지, 중간검사 성적서, 납품확인서, 출고증, 제품검사 성적서, 품질관리서 + +--- + +## 5. API 엔드포인트 설계 (후보) + +### 5.1 제품검사관리 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/quality/inspections` | 제품검사 목록 (필터: status, date_range, search) | +| GET | `/api/quality/inspections/stats` | 상태별 카운트 (접수/진행중/완료) | +| GET | `/api/quality/inspections/schedule` | 캘린더 스케줄 (필터: year, month, status) | +| POST | `/api/quality/inspections` | 제품검사 등록 | +| GET | `/api/quality/inspections/{id}` | 제품검사 상세 | +| PUT | `/api/quality/inspections/{id}` | 제품검사 수정 | +| PUT | `/api/quality/inspections/{id}/complete` | 검사 완료 처리 | +| GET | `/api/quality/inspections/{id}/orders` | 연결된 수주 목록 | +| POST | `/api/quality/inspections/{id}/orders` | 수주 연결 추가 | +| DELETE | `/api/quality/inspections/{id}/orders/{orderId}` | 수주 연결 삭제 | +| GET | `/api/quality/inspections/available-orders` | 검사 미등록 수주 목록 (수주선택 팝업용) | +| POST | `/api/quality/inspections/{id}/orders/{orderId}/locations/{locationId}/inspect` | 개소별 검사 결과 저장 | +| GET | `/api/quality/inspections/{id}/request-document` | 검사제품요청서 데이터 | +| GET | `/api/quality/inspections/{id}/result-document` | 제품검사성적서 데이터 (페이지네이션) | + +### 5.2 실적신고관리 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/quality/performance-reports` | 실적신고 목록 (필터: year, quarter, status, search) | +| GET | `/api/quality/performance-reports/stats` | 상태별 카운트 | +| PUT | `/api/quality/performance-reports/confirm` | 일괄 확정 (body: ids[]) | +| PUT | `/api/quality/performance-reports/unconfirm` | 일괄 확정 해제 (body: ids[]) | +| PUT | `/api/quality/performance-reports/memo` | 일괄 메모 작성 (body: ids[], memo) | +| GET | `/api/quality/performance-reports/missing` | 누락체크 목록 | +| GET | `/api/quality/performance-reports/export` | 확정건 엑셀 다운로드 | + +### 5.3 품질인정심사 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/quality/certification-audit/summary` | 심사 진행률 요약 | +| GET | `/api/quality/certification-audit/standards` | 기준/매뉴얼 심사 점검표 | +| PUT | `/api/quality/certification-audit/standards/{itemId}` | 항목 완료/해제 토글 | +| GET | `/api/quality/certification-audit/standards/{itemId}/documents` | 항목 기준 문서 | +| GET | `/api/quality/certification-audit/lot-tracking` | 로트추적 품질관리서 목록 | +| GET | `/api/quality/certification-audit/lot-tracking/{docId}/orders` | 수주코드 목록 | +| GET | `/api/quality/certification-audit/lot-tracking/{docId}/orders/{orderId}/products` | 개소별 제품코드 | +| PUT | `/api/quality/certification-audit/lot-tracking/{docId}/orders/{orderId}/products/{productId}/verify` | 제품코드 확인 처리 | +| GET | `/api/quality/certification-audit/lot-tracking/{docId}/orders/{orderId}/products/{productId}/documents` | 확인 서류 목록 | + +--- + +## 6. 메뉴 구조 + +``` +품질관리 +├── 제품검사관리 ← 슬라이드 2~12 +│ ├── 제품검사 목록 (목록 + 캘린더) +│ └── 제품검사 상세 (상세 + 검사팝업 + 요청서 + 성적서) +├── 실적신고관리 ← 슬라이드 13~15 +│ ├── 분기별 실적신고 (목록 + 메모팝업) +│ └── 누락체크 (목록) +└── 품질인정심사 ← 슬라이드 16~17 + ├── 기준/매뉴얼 심사 (점검표 + 문서확인) + └── 로트 추적 심사 (3단계 드릴다운 + 서류확인) +``` + +--- + +## 7. 슬라이드-화면 매핑 (빠른 참조) + +| 슬라이드 | 화면 | 섹션 | +|---------|------|------| +| 1 | 전체 프로세스 플로우 | 1장 | +| 2 | 제품검사 목록 (테이블) | 2.1 | +| 3 | 제품검사 목록 (캘린더) | 2.1.4 | +| 4 | 제품검사 상세 (기본정보 ~ 공사시공자) | 2.2.1~2.2.4 | +| 5 | 제품검사 상세 (공사감리자 ~ 수주설정 ~ 하단버튼) | 2.2.5~2.2.9 | +| 6 | 제품검사 상세 (수주 펼침 - 규격 비교) | 2.2.8 | +| 7 | 수주 선택 팝업 | 2.3 | +| 8 | 제품검사 팝업 (갈모양/치수) | 2.4 | +| 9 | 검사제품요청서 (상단) | 2.5 | +| 10 | 검사제품요청서 (하단 테이블) | 2.5 | +| 11 | 제품검사성적서 (상단 + 검사항목) | 2.6 | +| 12 | 제품검사성적서 (검사항목 계속 + 종합판정) | 2.6 | +| 13 | 실적신고 목록 (분기별) | 2.7 | +| 14 | 실적신고 메모 팝업 | 2.7.3 | +| 15 | 실적신고 누락체크 | 2.7.4 | +| 16 | 품질인정심사 (기준/매뉴얼) | 2.8 | +| 17 | 품질인정심사 (로트추적) | 2.9 | \ No newline at end of file