From 6b4eae5252d110166bf5be8315e392621425a682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 12 Mar 2026 10:40:42 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[equipment]=20=EC=84=A4=EB=B9=84?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=ED=99=94=EB=A9=B4=20=EC=84=A4=EA=B3=84=20?= =?UTF-8?q?=EC=8A=A4=ED=86=A0=EB=A6=AC=EB=B3=B4=EB=93=9C=20PPTX=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 9개 화면 14슬라이드 기획서 - 대시보드, 대장CRUD, 점검그리드, 수리이력, Import --- features/equipment/storyboard-config.json | 489 ++++++++++++++++++++ features/equipment/설비관리_스토리보드.pptx | Bin 0 -> 74903 bytes 2 files changed, 489 insertions(+) create mode 100644 features/equipment/storyboard-config.json create mode 100644 features/equipment/설비관리_스토리보드.pptx diff --git a/features/equipment/storyboard-config.json b/features/equipment/storyboard-config.json new file mode 100644 index 0000000..8cdc8dc --- /dev/null +++ b/features/equipment/storyboard-config.json @@ -0,0 +1,489 @@ +{ + "projectName": "SAM 설비관리 (Equipment Management)", + "company": "(주)코드브릿지엑스", + "author": "R&D실", + "date": "2026.03.12", + "version": "1.0", + "purpose": "생산 설비의 등록, 점검, 수리이력을 체계적으로 관리하는 설비관리 시스템의 화면 설계 기획서", + "features": [ + "설비 대시보드 (현황 통계, 유형별 분포, 최근 수리이력)", + "설비 대장 CRUD (등록/조회/수정/삭제/복원)", + "6주기 점검 그리드 (일일/주간/월간/2개월/분기/반년)", + "점검 템플릿 관리 (설비별 점검항목 정의, 주기간 복사)", + "수리이력 관리 (사내/외주, 비용, 시간, 업체)", + "설비 사진 관리 (GCS 업로드, 자동 압축, 최대 10장)", + "엑셀 Import (미리보기 + 일괄등록, 이미지 포함)" + ], + "effects": [ + { "icon": "📊", "title": "설비 현황 가시화", "desc": "대시보드를 통한 전체 설비 상태 실시간 파악" }, + { "icon": "🔧", "title": "정기 점검 체계화", "desc": "6주기 점검 그리드로 누락 없는 예방보전 관리" }, + { "icon": "📋", "title": "이력 추적성", "desc": "수리이력과 점검기록의 체계적 관리로 감사 대응" }, + { "icon": "📱", "title": "모바일 점검", "desc": "QR 스캔 기반 현장 모바일 점검 지원" } + ], + "tocItems": [ + { "num": "01", "title": "프로젝트 개요", "desc": "설비관리 시스템 목적 및 주요 기능" }, + { "num": "02", "title": "메뉴 구조 (IA)", "desc": "Information Architecture" }, + { "num": "03", "title": "설비 대시보드", "desc": "현황 통계 및 유형별 분포" }, + { "num": "04", "title": "설비 대장 목록", "desc": "설비 목록 조회 및 필터링" }, + { "num": "05", "title": "설비 등록", "desc": "신규 설비 등록 폼" }, + { "num": "06", "title": "설비 상세", "desc": "설비 정보, 점검항목, 수리이력, 사진 탭" }, + { "num": "07", "title": "점검 그리드", "desc": "6주기 점검 현황 그리드" }, + { "num": "08", "title": "수리이력", "desc": "수리이력 목록 및 등록" }, + { "num": "09", "title": "엑셀 Import", "desc": "엑셀 파일 업로드 및 일괄 등록" } + ], + "mainMenus": [ + { + "title": "설비 대시보드", + "children": ["현황 통계", "유형별 분포", "최근 수리"] + }, + { + "title": "설비 대장", + "children": ["목록", "등록", "상세/수정"] + }, + { + "title": "점검 관리", + "children": ["점검 그리드", "점검항목 설정"] + }, + { + "title": "수리이력", + "children": ["목록", "등록/수정"] + }, + { + "title": "Import", + "children": ["엑셀 업로드"] + } + ], + "screens": [ + { + "taskName": "설비 대시보드", + "route": "/equipment", + "screenName": "설비 현황 대시보드", + "screenId": "EQP_001", + "descriptions": [ + { + "title": "현황 통계 카드", + "content": "전체/가동/유휴/폐기 설비 수를 카드 형태로 표시. 각 카드 클릭 시 해당 상태 필터 적용된 목록으로 이동", + "markerX": 1.8, + "markerY": 1.5 + }, + { + "title": "유형별 분포 차트", + "content": "포밍기/미싱기/샤링기/V컷팅기/절곡기/프레스/드릴/기타별 설비 수를 PieChart로 시각화", + "markerX": 1.8, + "markerY": 2.8 + }, + { + "title": "최근 수리이력", + "content": "최근 5건의 수리이력을 테이블로 표시. 설비명, 수리일, 보전구분(사내/외주), 수리내용 포함", + "markerX": 4.2, + "markerY": 2.8 + }, + { + "title": "이번 달 점검 현황", + "content": "당월 점검 완료율, 미점검 설비 수 등 점검 진행 상황 요약", + "markerX": 4.2, + "markerY": 4.2 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "설비 현황 대시보드", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 1.2, "h": 0.7, "fill": "0d9488", "text": "전체\n128대", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 2.9, "y": 1.7, "w": 1.2, "h": 0.7, "fill": "22c55e", "text": "가동\n95대", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 4.2, "y": 1.7, "w": 1.2, "h": 0.7, "fill": "f59e0b", "text": "유휴\n25대", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 5.5, "y": 1.7, "w": 1.2, "h": 0.7, "fill": "dc2626", "text": "폐기\n8대", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.6, "w": 2.5, "h": 2.2, "fill": "FFFFFF", "text": "[유형별 분포 PieChart]\n포밍기 32%\n미싱기 25%\n절곡기 18%\n기타 25%", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 4.2, "y": 2.6, "w": 2.5, "h": 1.3, "fill": "FFFFFF", "text": "최근 수리이력\n───────────────\n포밍기-01 | 03.10 | 사내\n미싱기-03 | 03.08 | 외주\n절곡기-02 | 03.05 | 사내", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.2, "y": 4.0, "w": 2.5, "h": 0.8, "fill": "FFFFFF", "text": "이번 달 점검 현황\n완료율: 78% (94/120)\n미점검: 26건", "fontSize": 7, "color": "1e293b"} + ] + }, + { + "taskName": "설비 대장", + "route": "/equipment/registry", + "screenName": "설비 대장 목록", + "screenId": "EQP_002", + "descriptions": [ + { + "title": "상태 필터 탭", + "content": "전체/가동(active)/유휴(idle)/폐기(disposed) 탭으로 상태별 필터링. 각 탭에 해당 건수 표시", + "markerX": 1.8, + "markerY": 1.5 + }, + { + "title": "검색 및 필터", + "content": "설비코드, 설비명으로 텍스트 검색. 생산라인(스라트/스크린/절곡/기타), 설비유형 드롭다운 필터", + "markerX": 1.8, + "markerY": 2.0 + }, + { + "title": "설비 목록 테이블", + "content": "설비코드, 설비명, 유형, 생산라인, 상태, 담당자, 구입일 컬럼. 행 클릭 시 상세 페이지로 이동", + "markerX": 1.8, + "markerY": 2.8 + }, + { + "title": "액션 버튼", + "content": "설비 등록 버튼, 엑셀 다운로드 버튼. UniversalListPage 템플릿 적용", + "markerX": 5.8, + "markerY": 1.5 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "설비 대장", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.65, "w": 0.9, "h": 0.3, "fill": "0d9488", "text": "전체 128", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 2.55, "y": 1.65, "w": 0.9, "h": 0.3, "fill": "e2e8f0", "text": "가동 95", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 3.5, "y": 1.65, "w": 0.9, "h": 0.3, "fill": "e2e8f0", "text": "유휴 25", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 4.45, "y": 1.65, "w": 0.9, "h": 0.3, "fill": "e2e8f0", "text": "폐기 8", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 5.8, "y": 1.65, "w": 1.0, "h": 0.3, "fill": "0d9488", "text": "+ 설비 등록", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.05, "w": 2.0, "h": 0.3, "fill": "FFFFFF", "text": "🔍 설비코드/설비명 검색", "fontSize": 8, "color": "94a3b8"}, + {"type": "rect", "x": 3.7, "y": 2.05, "w": 1.2, "h": 0.3, "fill": "FFFFFF", "text": "생산라인 ▼", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 5.0, "y": 2.05, "w": 1.2, "h": 0.3, "fill": "FFFFFF", "text": "설비유형 ▼", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 1.6, "y": 2.5, "w": 5.3, "h": 0.35, "fill": "1e293b", "text": "설비코드 | 설비명 | 유형 | 생산라인 | 상태 | 담당자 | 구입일", "fontSize": 7, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.85, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "FM-001 | 포밍기 1호 | 포밍기 | 스라트 | 가동 | 김철수 | 2023-05-10", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.15, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "MS-003 | 미싱기 3호 | 미싱기 | 스크린 | 가동 | 박영희 | 2024-01-15", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.45, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "SH-002 | 샤링기 2호 | 샤링기 | 절곡 | 유휴 | 이민수 | 2022-11-20", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.75, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "VC-001 | V컷팅기 1호 | V컷팅기 | 스라트 | 가동 | 김철수 | 2024-06-01", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 4.05, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "PR-004 | 프레스 4호 | 프레스 | 기타 | 폐기 | - | 2019-03-22", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 3.0, "y": 4.5, "w": 2.0, "h": 0.3, "text": "< 1 2 3 4 5 >", "fontSize": 8, "color": "64748b"} + ] + }, + { + "taskName": "설비 대장", + "route": "/equipment/registry/create", + "screenName": "설비 등록", + "screenId": "EQP_003", + "descriptions": [ + { + "title": "기본 정보 입력", + "content": "설비코드(tenant 내 unique), 설비명, 설비유형(드롭다운 8종), 생산라인(드롭다운 4종), 상태(active/idle/disposed)", + "markerX": 1.8, + "markerY": 1.7 + }, + { + "title": "담당자 지정", + "content": "정 담당자(manager_id), 부 담당자(sub_manager_id) 선택. 사용자 목록에서 검색 선택", + "markerX": 1.8, + "markerY": 2.8 + }, + { + "title": "구입/설치 정보", + "content": "구입일, 설치일(DatePicker), 구입가격(decimal), 내용연수(년), 메모(textarea)", + "markerX": 1.8, + "markerY": 3.6 + }, + { + "title": "공정 매핑", + "content": "설비가 소속된 공정을 N:N으로 선택. 주 설비 여부(is_primary) 체크박스", + "markerX": 4.5, + "markerY": 3.6 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "설비 등록", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "설비코드 * FM-005", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 4.3, "y": 1.7, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "설비명 * 포밍기 5호", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.15, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "설비유형 포밍기 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 4.3, "y": 2.15, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "생산라인 스라트 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.6, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "상태 가동 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.05, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "정 담당자 김철수 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 4.3, "y": 3.05, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "부 담당자 박영희 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.5, "w": 1.6, "h": 0.35, "fill": "FFFFFF", "text": "구입일 2026-03-01", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 3.3, "y": 3.5, "w": 1.6, "h": 0.35, "fill": "FFFFFF", "text": "설치일 2026-03-10", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.95, "w": 1.6, "h": 0.35, "fill": "FFFFFF", "text": "구입가격 35,000,000", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 3.3, "y": 3.95, "w": 1.6, "h": 0.35, "fill": "FFFFFF", "text": "내용연수 10년", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 5.0, "y": 3.5, "w": 1.8, "h": 0.8, "fill": "f1f5f9", "text": "공정 매핑\n☑ 절곡공정 (주)\n☐ 포장공정\n☑ 조립공정", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 4.4, "w": 5.3, "h": 0.5, "fill": "FFFFFF", "text": "메모\n특이사항 입력...", "fontSize": 8, "color": "94a3b8"}, + {"type": "rect", "x": 5.4, "y": 5.0, "w": 0.7, "h": 0.3, "fill": "0d9488", "text": "저장", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 6.2, "y": 5.0, "w": 0.7, "h": 0.3, "fill": "64748b", "text": "취소", "fontSize": 9, "color": "FFFFFF"} + ] + }, + { + "taskName": "설비 대장", + "route": "/equipment/registry/{id}", + "screenName": "설비 상세 (기본정보 탭)", + "screenId": "EQP_004", + "descriptions": [ + { + "title": "탭 구조", + "content": "기본정보 | 점검항목 | 수리이력 | 사진 4개 탭. 현재 활성 탭 하이라이트 표시", + "markerX": 1.8, + "markerY": 1.7 + }, + { + "title": "기본정보 그리드", + "content": "설비 기본 정보를 라벨:값 그리드로 표시. 수정 버튼 클릭 시 수정 페이지로 이동", + "markerX": 1.8, + "markerY": 2.3 + }, + { + "title": "상태 배지", + "content": "가동(녹색)/유휴(주황)/폐기(적색) 상태를 컬러 배지로 표시", + "markerX": 5.5, + "markerY": 1.5 + }, + { + "title": "액션 버튼", + "content": "수정, 삭제(SoftDelete), 복원 버튼. 삭제된 설비는 복원 버튼 표시", + "markerX": 5.5, + "markerY": 5.0 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 4.0, "h": 0.4, "text": "포밍기 1호 (FM-001)", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 5.8, "y": 1.25, "w": 0.6, "h": 0.25, "fill": "22c55e", "text": "가동", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "0d9488", "text": "기본정보", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 2.8, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "e2e8f0", "text": "점검항목", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 4.0, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "e2e8f0", "text": "수리이력", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 5.2, "y": 1.7, "w": 1.0, "h": 0.3, "fill": "e2e8f0", "text": "사진", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 1.6, "y": 2.1, "w": 5.3, "h": 2.8, "fill": "FFFFFF"}, + {"type": "rect", "x": 1.8, "y": 2.2, "w": 1.0, "h": 0.25, "text": "설비코드", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 2.8, "y": 2.2, "w": 1.5, "h": 0.25, "text": "FM-001", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.5, "y": 2.2, "w": 1.0, "h": 0.25, "text": "설비명", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 5.5, "y": 2.2, "w": 1.3, "h": 0.25, "text": "포밍기 1호", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.8, "y": 2.55, "w": 1.0, "h": 0.25, "text": "설비유형", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 2.8, "y": 2.55, "w": 1.5, "h": 0.25, "text": "포밍기", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.5, "y": 2.55, "w": 1.0, "h": 0.25, "text": "생산라인", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 5.5, "y": 2.55, "w": 1.3, "h": 0.25, "text": "스라트", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.8, "y": 2.9, "w": 1.0, "h": 0.25, "text": "정 담당자", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 2.8, "y": 2.9, "w": 1.5, "h": 0.25, "text": "김철수", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.5, "y": 2.9, "w": 1.0, "h": 0.25, "text": "부 담당자", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 5.5, "y": 2.9, "w": 1.3, "h": 0.25, "text": "박영희", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.8, "y": 3.25, "w": 1.0, "h": 0.25, "text": "구입일", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 2.8, "y": 3.25, "w": 1.5, "h": 0.25, "text": "2023-05-10", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.5, "y": 3.25, "w": 1.0, "h": 0.25, "text": "설치일", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 5.5, "y": 3.25, "w": 1.3, "h": 0.25, "text": "2023-06-01", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.8, "y": 3.6, "w": 1.0, "h": 0.25, "text": "구입가격", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 2.8, "y": 3.6, "w": 1.5, "h": 0.25, "text": "35,000,000원", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 4.5, "y": 3.6, "w": 1.0, "h": 0.25, "text": "내용연수", "fontSize": 7, "color": "64748b", "bold": true}, + {"type": "rect", "x": 5.5, "y": 3.6, "w": 1.3, "h": 0.25, "text": "10년", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 5.5, "y": 4.95, "w": 0.7, "h": 0.3, "fill": "0d9488", "text": "수정", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 6.3, "y": 4.95, "w": 0.7, "h": 0.3, "fill": "dc2626", "text": "삭제", "fontSize": 9, "color": "FFFFFF"} + ] + }, + { + "taskName": "설비 대장", + "route": "/equipment/registry/{id}#inspection-items", + "screenName": "설비 상세 (점검항목 탭)", + "screenId": "EQP_005", + "descriptions": [ + { + "title": "주기 선택 탭", + "content": "일일/주간/월간/2개월/분기/반년 6개 주기 탭. 선택한 주기의 점검항목 표시", + "markerX": 1.8, + "markerY": 2.2 + }, + { + "title": "점검항목 목록", + "content": "항목번호, 점검개소, 점검항목, 시기(가동중/정지중), 점검방법 컬럼. 인라인 수정 지원", + "markerX": 1.8, + "markerY": 2.9 + }, + { + "title": "항목 추가/복사", + "content": "점검항목 추가 버튼으로 새 항목 생성. 주기간 복사 기능으로 다른 주기의 항목을 일괄 복사", + "markerX": 5.0, + "markerY": 2.2 + }, + { + "title": "항목 삭제", + "content": "각 행의 삭제 버튼으로 개별 항목 삭제. 삭제 시 확인 다이얼로그 표시", + "markerX": 6.5, + "markerY": 2.9 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 4.0, "h": 0.4, "text": "포밍기 1호 (FM-001)", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "e2e8f0", "text": "기본정보", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 2.8, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "0d9488", "text": "점검항목", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 4.0, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "e2e8f0", "text": "수리이력", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 5.2, "y": 1.7, "w": 1.0, "h": 0.3, "fill": "e2e8f0", "text": "사진", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 1.6, "y": 2.1, "w": 0.7, "h": 0.25, "fill": "0d9488", "text": "일일", "fontSize": 7, "color": "FFFFFF"}, + {"type": "rect", "x": 2.3, "y": 2.1, "w": 0.7, "h": 0.25, "fill": "f1f5f9", "text": "주간", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 3.0, "y": 2.1, "w": 0.7, "h": 0.25, "fill": "f1f5f9", "text": "월간", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 3.7, "y": 2.1, "w": 0.7, "h": 0.25, "fill": "f1f5f9", "text": "2개월", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 5.0, "y": 2.1, "w": 1.0, "h": 0.25, "fill": "0d9488", "text": "+ 항목 추가", "fontSize": 7, "color": "FFFFFF"}, + {"type": "rect", "x": 6.1, "y": 2.1, "w": 0.8, "h": 0.25, "fill": "64748b", "text": "주기 복사", "fontSize": 7, "color": "FFFFFF"}, + {"type": "rect", "x": 1.6, "y": 2.5, "w": 5.3, "h": 0.3, "fill": "1e293b", "text": "No | 점검개소 | 점검항목 | 시기 | 점검방법 | 삭제", "fontSize": 7, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.8, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "1 | 유압부 | 유압 호스 상태 | 가동중 | 육안 확인 후 이상 시 교체 | X", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.1, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "2 | 전기부 | 전원 케이블 | 정지중 | 절연 저항 측정 | X", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.4, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "3 | 구동부 | 벨트 장력 | 가동중 | 텐션게이지 측정 | X", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.7, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "4 | 안전장치 | 비상정지 버튼 | 정지중 | 작동 테스트 | X", "fontSize": 7, "color": "1e293b"} + ] + }, + { + "taskName": "점검 관리", + "route": "/equipment/inspections", + "screenName": "점검 그리드", + "screenId": "EQP_006", + "descriptions": [ + { + "title": "주기/기간 선택", + "content": "6개 주기 탭(일일~반년) 선택. 일일: 년-월 선택(1~31일 열), 그 외: 년 선택(주간:1~52주, 월간:1~12월 등)", + "markerX": 1.8, + "markerY": 1.7 + }, + { + "title": "점검 그리드", + "content": "행: 설비x점검항목, 열: 날짜/기간. 셀 클릭 시 결과 순환(빈칸->O->X->Triangle->빈칸). 색상으로 구분", + "markerX": 1.8, + "markerY": 2.8 + }, + { + "title": "종합판정/노트", + "content": "설비별 종합판정(OK/NG), 수리내역, 이상내용 편집 가능. 인라인 수정 지원", + "markerX": 5.5, + "markerY": 2.8 + }, + { + "title": "생산라인 필터", + "content": "생산라인별 필터로 해당 라인 설비만 표시. 전체/스라트/스크린/절곡/기타", + "markerX": 5.0, + "markerY": 1.7 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "설비 점검", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "0d9488", "text": "일일", "fontSize": 7, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 2.15, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "f1f5f9", "text": "주간", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 2.7, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "f1f5f9", "text": "월간", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 3.25, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "f1f5f9", "text": "2개월", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 3.8, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "f1f5f9", "text": "분기", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 4.35, "y": 1.65, "w": 0.55, "h": 0.25, "fill": "f1f5f9", "text": "반년", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 5.0, "y": 1.65, "w": 1.0, "h": 0.25, "fill": "FFFFFF", "text": "2026-03 ▼", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 6.1, "y": 1.65, "w": 0.8, "h": 0.25, "fill": "FFFFFF", "text": "전체 ▼", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.0, "w": 5.3, "h": 0.35, "fill": "1e293b", "text": "설비 | 항목 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ... | 판정", "fontSize": 6, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.35, "w": 5.3, "h": 0.55, "fill": "FFFFFF", "text": "포밍기 유압호스 O O O - - O X △ ... OK\n1호 벨트장력 O O O - - O O O ... OK", "fontSize": 6, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.9, "w": 5.3, "h": 0.55, "fill": "f8fafc", "text": "미싱기 전원케이블 O O X - - △ O O ... NG\n3호 안전장치 O O O - - O O O ... OK", "fontSize": 6, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.45, "w": 5.3, "h": 0.55, "fill": "FFFFFF", "text": "샤링기 유압압력 O O O - - O O O ... OK\n2호 칼날마모 O X △ - - O O O ... OK", "fontSize": 6, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 4.1, "w": 5.3, "h": 0.5, "fill": "f1f5f9", "text": "범례: O = 양호(good) X = 불량(bad) △ = 수리(repaired) - = 휴일/주말\n셀 클릭 시: 빈칸 -> O -> X -> △ -> 빈칸 순환", "fontSize": 7, "color": "64748b"} + ] + }, + { + "taskName": "수리이력", + "route": "/equipment/repairs", + "screenName": "수리이력 목록", + "screenId": "EQP_007", + "descriptions": [ + { + "title": "필터 영역", + "content": "설비 선택(드롭다운), 보전구분(사내/외주), 날짜 범위(시작일~종료일), 텍스트 검색(수리내용)", + "markerX": 1.8, + "markerY": 1.7 + }, + { + "title": "수리이력 테이블", + "content": "수리일, 설비명, 보전구분, 수리내용, 수리시간, 비용, 수리자/업체 컬럼. 행 클릭 시 수정 모달", + "markerX": 1.8, + "markerY": 2.6 + }, + { + "title": "수리이력 등록", + "content": "수리이력 등록 버튼 클릭 시 등록 폼(모달 또는 별도 페이지)으로 이동", + "markerX": 5.8, + "markerY": 1.3 + }, + { + "title": "비용 집계", + "content": "조회된 수리이력의 총 비용, 사내/외주 비용 비율 등 하단 요약 표시", + "markerX": 1.8, + "markerY": 4.5 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "수리이력", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 5.8, "y": 1.25, "w": 1.0, "h": 0.3, "fill": "0d9488", "text": "+ 수리 등록", "fontSize": 8, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 1.5, "h": 0.3, "fill": "FFFFFF", "text": "설비 선택 ▼", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 3.2, "y": 1.7, "w": 1.0, "h": 0.3, "fill": "FFFFFF", "text": "보전구분 ▼", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 4.3, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "FFFFFF", "text": "2026-01 ~ 2026-03", "fontSize": 7, "color": "64748b"}, + {"type": "rect", "x": 5.6, "y": 1.7, "w": 1.2, "h": 0.3, "fill": "FFFFFF", "text": "🔍 검색", "fontSize": 8, "color": "94a3b8"}, + {"type": "rect", "x": 1.6, "y": 2.15, "w": 5.3, "h": 0.35, "fill": "1e293b", "text": "수리일 | 설비명 | 보전구분 | 수리내용 | 시간 | 비용 | 수리자/업체", "fontSize": 7, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.5, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "2026-03-10 | 포밍기 1호 | 사내 | 유압호스 교체 | 2.0h | 150,000원 | 김철수", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.8, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "2026-03-08 | 미싱기 3호 | 외주 | 모터 오버홀 | 8.0h | 2,500,000원 | ABC기계", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.1, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "2026-03-05 | 샤링기 2호 | 사내 | 칼날 교체 | 1.5h | 85,000원 | 이민수", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.4, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "2026-02-28 | 절곡기 1호 | 외주 | 유압실린더 교체 | 4.0h | 1,200,000원 | XYZ설비", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 3.0, "y": 3.9, "w": 2.0, "h": 0.3, "text": "< 1 2 3 >", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 1.6, "y": 4.3, "w": 5.3, "h": 0.4, "fill": "f1f5f9", "text": "총 수리비용: 3,935,000원 | 사내: 235,000원 (6%) | 외주: 3,700,000원 (94%)", "fontSize": 8, "color": "1e293b", "bold": true} + ] + }, + { + "taskName": "수리이력", + "route": "/equipment/repairs/create", + "screenName": "수리이력 등록", + "screenId": "EQP_008", + "descriptions": [ + { + "title": "설비 선택", + "content": "수리 대상 설비를 드롭다운에서 선택. 설비코드+설비명 표시. 필수 입력", + "markerX": 1.8, + "markerY": 1.7 + }, + { + "title": "수리 정보", + "content": "수리일(DatePicker), 보전구분(사내/외주 라디오), 수리시간(시간 단위), 비용(원)", + "markerX": 1.8, + "markerY": 2.3 + }, + { + "title": "수리 상세", + "content": "수리내용(textarea), 수리자(사내 선택) 또는 외주업체명(텍스트 입력). 보전구분에 따라 전환", + "markerX": 1.8, + "markerY": 3.3 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "수리이력 등록", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 5.3, "h": 0.35, "fill": "FFFFFF", "text": "설비 * FM-001 포밍기 1호 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.15, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "수리일 * 2026-03-12", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 4.3, "y": 2.15, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "보전구분 * ● 사내 ○ 외주", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 2.6, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "수리시간 2.0 시간", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 4.3, "y": 2.6, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "수리비용 150,000 원", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.05, "w": 2.5, "h": 0.35, "fill": "FFFFFF", "text": "수리자 김철수 ▼", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.5, "w": 5.3, "h": 1.0, "fill": "FFFFFF", "text": "수리내용\n유압호스 노후로 인한 교체 작업.\n기존 호스 균열 발견, 동일 규격 신품으로 교체 완료.\n압력 테스트 정상 확인.", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 5.4, "y": 4.7, "w": 0.7, "h": 0.3, "fill": "0d9488", "text": "저장", "fontSize": 9, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 6.2, "y": 4.7, "w": 0.7, "h": 0.3, "fill": "64748b", "text": "취소", "fontSize": 9, "color": "FFFFFF"} + ] + }, + { + "taskName": "Import", + "route": "/equipment/import", + "screenName": "엑셀 Import", + "screenId": "EQP_009", + "descriptions": [ + { + "title": "파일 업로드", + "content": "엑셀 파일(.xlsx) 드래그&드롭 또는 파일 선택. 업로드 후 자동으로 미리보기 단계로 전환", + "markerX": 1.8, + "markerY": 1.8 + }, + { + "title": "미리보기 테이블", + "content": "파싱된 데이터를 테이블로 표시. 한글/영문 헤더 자동 매핑. 오류 행 빨간색 표시. 이미지(Drawing) 자동 추출 표시", + "markerX": 1.8, + "markerY": 2.7 + }, + { + "title": "중복 처리 옵션", + "content": "동일 설비코드 존재 시: 건너뜀(skip) 또는 덮어쓰기(overwrite) 선택. 라디오 버튼", + "markerX": 1.8, + "markerY": 4.2 + }, + { + "title": "Import 실행", + "content": "Import 실행 버튼 클릭 시 일괄 등록. 결과 요약(성공/실패/건너뜀 건수) 표시", + "markerX": 5.8, + "markerY": 4.2 + } + ], + "wireframeElements": [ + {"type": "rect", "x": 1.6, "y": 1.2, "w": 5.3, "h": 0.4, "text": "엑셀 Import", "fontSize": 14, "bold": true, "color": "1e293b", "fill": "f8fafc"}, + {"type": "rect", "x": 1.6, "y": 1.7, "w": 5.3, "h": 0.8, "fill": "f1f5f9", "text": "📁 엑셀 파일을 드래그하거나 클릭하여 선택하세요\n(.xlsx 형식, 최대 10MB)", "fontSize": 9, "color": "64748b"}, + {"type": "rect", "x": 1.6, "y": 2.6, "w": 5.3, "h": 0.3, "fill": "1e293b", "text": "설비코드 | 설비명 | 유형 | 라인 | 상태 | 구입일 | 이미지", "fontSize": 7, "color": "FFFFFF", "bold": true}, + {"type": "rect", "x": 1.6, "y": 2.9, "w": 5.3, "h": 0.3, "fill": "FFFFFF", "text": "FM-006 | 포밍기 6호 | 포밍기 | 스라트 | 가동 | 2026-01 | [img]", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.2, "w": 5.3, "h": 0.3, "fill": "f8fafc", "text": "MS-005 | 미싱기 5호 | 미싱기 | 스크린 | 가동 | 2025-11 | [img]", "fontSize": 7, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 3.5, "w": 5.3, "h": 0.3, "fill": "fef2f2", "text": "FM-001 | 포밍기 1호 | 포밍기 | 스라트 | 가동 | 2023-05 | - (중복!)", "fontSize": 7, "color": "dc2626"}, + {"type": "rect", "x": 1.6, "y": 3.9, "w": 3.0, "h": 0.35, "fill": "f1f5f9", "text": "중복 처리: ● 건너뜀(skip) ○ 덮어쓰기(overwrite)", "fontSize": 8, "color": "1e293b"}, + {"type": "rect", "x": 1.6, "y": 4.35, "w": 3.0, "h": 0.3, "text": "총 3건 | 신규: 2건 | 중복: 1건 | 오류: 0건", "fontSize": 8, "color": "64748b"}, + {"type": "rect", "x": 5.8, "y": 4.35, "w": 1.0, "h": 0.3, "fill": "0d9488", "text": "Import 실행", "fontSize": 8, "color": "FFFFFF", "bold": true} + ] + } + ] +} diff --git a/features/equipment/설비관리_스토리보드.pptx b/features/equipment/설비관리_스토리보드.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b35bfa830d86058c8dc7df0fe02685cb03e50c06 GIT binary patch literal 74903 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