# 품질관리 스토리보드 명세 (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 |