From 8c24b0ae242c0fcfe92f6ac4141b26357357488c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Wed, 25 Feb 2026 22:02:33 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[equipment]=20=EC=84=A4=EB=B9=84?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EB=8F=84=EC=9B=80=EB=A7=90=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /equipment/guide 라우트 및 컨트롤러 메서드 추가 - guide.blade.php 신규 생성 (히어로+TOC+5섹션+FAQ) - academy-glossary에 equipment 도메인 용어 20개 추가 - 품질인정심사(ISO 9001) 대응 가이드, 보전 기초지식 포함 --- app/Http/Controllers/EquipmentController.php | 115 +++ .../components/academy-glossary.blade.php | 23 + resources/views/equipment/guide.blade.php | 877 ++++++++++++++++++ routes/web.php | 18 + 4 files changed, 1033 insertions(+) create mode 100644 app/Http/Controllers/EquipmentController.php create mode 100644 resources/views/equipment/guide.blade.php diff --git a/app/Http/Controllers/EquipmentController.php b/app/Http/Controllers/EquipmentController.php new file mode 100644 index 00000000..c2221c63 --- /dev/null +++ b/app/Http/Controllers/EquipmentController.php @@ -0,0 +1,115 @@ +header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.dashboard')); + } + + $stats = $this->equipmentService->getDashboardStats(); + $typeStats = $this->equipmentService->getTypeStats(); + $inspectionStats = $this->inspectionService->getMonthlyStats(now()->format('Y-m')); + $recentRepairs = $this->repairService->getRecentRepairs(5); + + return view('equipment.dashboard', compact('stats', 'typeStats', 'inspectionStats', 'recentRepairs')); + } + + public function index(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.index')); + } + + return view('equipment.index'); + } + + public function create(): View + { + $users = \App\Models\User::orderBy('name')->get(['id', 'name']); + + return view('equipment.create', compact('users')); + } + + public function show(int $id): View + { + $equipment = $this->equipmentService->getEquipmentById($id); + + if (! $equipment) { + abort(404, '설비를 찾을 수 없습니다.'); + } + + return view('equipment.show', compact('equipment')); + } + + public function edit(int $id): View + { + $users = \App\Models\User::orderBy('name')->get(['id', 'name']); + + return view('equipment.edit', compact('id', 'users')); + } + + public function inspections(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.inspections')); + } + + $equipmentList = $this->equipmentService->getEquipmentList(); + + return view('equipment.inspections.index', compact('equipmentList')); + } + + public function repairs(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.repairs')); + } + + $equipmentList = $this->equipmentService->getEquipmentList(); + + return view('equipment.repairs.index', compact('equipmentList')); + } + + public function repairCreate(): View + { + $equipmentList = $this->equipmentService->getEquipmentList(); + $users = \App\Models\User::orderBy('name')->get(['id', 'name']); + + return view('equipment.repairs.create', compact('equipmentList', 'users')); + } + + public function import(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.import')); + } + + return view('equipment.import'); + } + + public function guide(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('equipment.guide')); + } + + return view('equipment.guide'); + } +} diff --git a/resources/views/components/academy-glossary.blade.php b/resources/views/components/academy-glossary.blade.php index 25225177..cb0d31e2 100644 --- a/resources/views/components/academy-glossary.blade.php +++ b/resources/views/components/academy-glossary.blade.php @@ -440,6 +440,29 @@ "Conflict": "같은 파일의 같은 부분을 두 사람이 다르게 수정했을 때 발생하는 충돌. 수동으로 해결해야 한다.", "3-way Merge": "공통 조상, 현재 브랜치, 대상 브랜치 세 가지를 비교하여 충돌을 해결하는 Merge 방식." }; +@elseif($domain === 'equipment') +window.__GLOSSARY_DATA['equipment'] = { + "BM": "Breakdown Maintenance(사후보전). 설비가 고장난 후에 수리하는 보전 방식. 가장 기본적이지만 비용과 손실이 크다.", + "PM": "Preventive Maintenance(예방보전). 고장이 발생하기 전에 정기적으로 점검·교체하는 보전 방식.", + "PdM": "Predictive Maintenance(예지보전). 센서 데이터로 고장 징후를 사전에 감지하여 적시에 보전하는 방식.", + "OEE": "Overall Equipment Effectiveness(설비종합효율). 가동률 x 성능효율 x 양품률로 계산하며, 설비 생산성의 핵심 지표.", + "MTBF": "Mean Time Between Failures(평균 고장 간격). 고장 없이 가동한 평균 시간. 값이 클수록 신뢰성이 높다.", + "MTTR": "Mean Time To Repair(평균 수리 시간). 고장 발생부터 복구까지 걸리는 평균 시간. 값이 작을수록 보전 역량이 높다.", + "TPM": "Total Productive Maintenance(전원참여 생산보전). 생산부서와 보전부서가 함께 설비 효율을 극대화하는 활동.", + "가동률": "설비가 실제로 가동된 시간의 비율. 계획 가동시간 대비 실제 가동시간으로 계산한다.", + "성능효율": "설비가 정상 속도로 가동된 비율. 이론 사이클타임 대비 실제 생산 속도를 나타낸다.", + "양품률": "생산된 제품 중 양품의 비율. 불량품을 제외한 실제 합격품 비율이다.", + "ISO 9001": "품질경영시스템 국제 표준. 조직이 고객 요구사항을 충족하고 지속적으로 개선하는 체계를 인증한다.", + "IATF 16949": "자동차 산업 품질경영시스템 표준. ISO 9001을 기반으로 자동차 산업 고유 요구사항을 추가한다.", + "예방보전": "Preventive Maintenance. 설비 고장을 예방하기 위해 계획적으로 수행하는 점검·정비·교체 활동.", + "사후보전": "Breakdown Maintenance. 설비가 고장난 후에 수리하는 방식. 비계획 정지가 발생하여 손실이 크다.", + "예지보전": "Predictive Maintenance. 설비 상태를 모니터링하여 고장을 사전 예측하고 최적 시점에 보전하는 방식.", + "파레토 분석": "고장 원인을 빈도순으로 정렬하여 상위 20%의 원인이 80%의 문제를 유발한다는 법칙을 활용하는 분석 기법.", + "Why-Why 분석": "왜(Why)를 5번 반복하여 고장의 근본 원인을 파악하는 분석 기법. 5 Whys라고도 한다.", + "교정": "측정 장비의 정확도를 기준 장비와 비교하여 확인·조정하는 활동. 품질 관리의 기본 요소.", + "보전구분": "수리 작업의 수행 주체 분류. 사내보전(자체 인력)과 외주보전(협력업체)으로 구분한다.", + "설비이력": "설비의 등록부터 점검, 수리, 폐기까지 전체 생애주기 동안의 기록. 이력 관리는 품질 심사의 핵심 증빙." +}; @endif diff --git a/resources/views/equipment/guide.blade.php b/resources/views/equipment/guide.blade.php new file mode 100644 index 00000000..f205f8f2 --- /dev/null +++ b/resources/views/equipment/guide.blade.php @@ -0,0 +1,877 @@ +@extends('layouts.app') + +@section('title', '설비관리 도움말') + +@push('styles') + +@endpush + +@section('content') +
+ + {{-- ============================================================ --}} + {{-- 히어로 배너 --}} + {{-- ============================================================ --}} +
+
+
+
+ 설비관리 + + 도움말 +
+

설비관리 도움말

+

설비 등록부터 점검, 수리이력, 품질인정심사 대응까지 — 친절한 가이드

+
+
+ {{-- 기어/렌치 인라인 SVG 일러스트 --}} + + {{-- 큰 기어 --}} + + + + @for($i = 0; $i < 8; $i++) + + @endfor + + {{-- 작은 기어 --}} + + + + @for($i = 0; $i < 6; $i++) + + @endfor + + {{-- 렌치 --}} + + + + + {{-- 체크마크 뱃지 --}} + + + +
+
+
+ +
+ {{-- ============================================================ --}} + {{-- 좌측 고정 목차 (TOC) --}} + {{-- ============================================================ --}} + + + {{-- ============================================================ --}} + {{-- 우측 콘텐츠 --}} + {{-- ============================================================ --}} +
+ + {{-- 모바일 목차 --}} + + + {{-- ============================================================ --}} + {{-- 섹션 1: SAM 설비관리 소개 --}} + {{-- ============================================================ --}} +
+
+

+ 1 + SAM 설비관리 소개 +

+ + {{-- 모듈 정의 --}} +
+

+ + 모듈 정의 +

+
+

+ SAM 설비관리는 공장 내 모든 설비의 생애주기를 체계적으로 관리하는 모듈입니다. + 설비 등록부터 일상점검, 수리이력, 통계 분석까지 한 곳에서 관리하며, + 품질인정심사(ISO 9001, IATF 16949)에 필요한 증빙 자료를 자동으로 생성합니다. +

+

+ 기존 엑셀·종이 기반의 관리 방식을 전산화하여 데이터 유실 방지, + 즉시 조회, 사진 증빙 자동 연결을 실현합니다. +

+
+
+ + {{-- 주요 기능 카드 6개 --}} +
+

+ + 주요 기능 +

+
+ {{-- 설비 등록대장 --}} +
+
+ + 설비 등록대장 +
+

설비코드, 설비명, 제조사, 설치일, 담당자 등 기본 정보를 체계적으로 등록·관리합니다.

+
+ {{-- 일상점검표 --}} +
+
+ + 일상점검표 +
+

설비별 일상점검 항목을 날짜별로 기록합니다. 월별 필터와 그리드 뷰로 한눈에 확인합니다.

+
+ {{-- 수리이력 --}} +
+
+ + 수리이력 +
+

고장 내용, 수리 일자, 보전구분(사내/외주), 비용을 기록하여 설비별 수리 이력을 추적합니다.

+
+ {{-- 대시보드 --}} +
+
+ + 대시보드 +
+

등록 설비 수, 설비 유형별 분포, 월간 점검 현황, 최근 수리 내역을 통계 차트로 제공합니다.

+
+ {{-- 엑셀 Import --}} +
+
+ + 엑셀 Import +
+

기존 엑셀 파일의 설비 데이터를 일괄 등록합니다. 템플릿 다운로드 후 데이터를 채워 업로드합니다.

+
+ {{-- 사진관리 --}} +
+
+ + 사진관리 +
+

설비 사진을 드래그&드롭 또는 클립보드 붙여넣기(Ctrl+V)로 첨부합니다. 심사 증빙용으로 활용됩니다.

+
+
+
+ + {{-- 기능 흐름도 --}} +
+

+ + 기능 흐름도 +

+
+ + {{-- Step 1: 설비 등록 --}} + + 설비 등록 + 기본정보 + 사진 + + {{-- Arrow 1→2 --}} + + + {{-- Step 2: 일상점검 --}} + + 일상점검 + 날짜별 체크리스트 + + {{-- Arrow 2→3 --}} + + + {{-- Step 3: 수리이력 --}} + + 수리이력 + 고장/수리 기록 + + {{-- Arrow 3→4 --}} + + + {{-- Step 4: 이력관리 --}} + + 이력관리 + 통계 + 심사 증빙 + + {{-- 화살표 마커 --}} + + + + + + + {{-- 단계 번호 --}} + + 1 + + 2 + + 3 + + 4 + +
+
+
+
+ + {{-- ============================================================ --}} + {{-- 섹션 2: 기능별 사용 가이드 --}} + {{-- ============================================================ --}} +
+
+

+ 2 + 기능별 사용 가이드 +

+ + {{-- 2-1. 설비 등록/수정 --}} +
+

+ + 설비 등록/수정 +

+ +
+
+

필수 입력 항목

+
+
+
    +
  • 설비코드 — 고유 식별번호 (중복 불가)
  • +
  • 설비명 — 설비의 이름
  • +
  • 설비유형 — 생산/검사/유틸리티 등 분류
  • +
+
    +
  • 설치일 — 설비를 설치한 날짜
  • +
  • 설치위치 — 공장 내 위치
  • +
  • 담당자 — 설비 관리 책임자
  • +
+
+
+
+ +
+

사진 첨부 방법

+
+

사진 첨부 3가지 방법:

+
    +
  1. 파일 선택 — "파일 선택" 버튼 클릭 후 이미지 파일 선택
  2. +
  3. 드래그 & 드롭 — 파일 탐색기에서 이미지를 사진 영역에 끌어다 놓기
  4. +
  5. 클립보드 붙여넣기 — 스크린샷 후 Ctrl+V로 바로 붙여넣기
  6. +
+
+
+ +
+

엑셀 Import로 대량 등록

+
+
    +
  1. 템플릿 다운로드 — 설비 Import 페이지에서 엑셀 템플릿을 다운로드합니다.
  2. +
  3. 데이터 입력 — 템플릿 양식에 맞춰 설비 데이터를 입력합니다.
  4. +
  5. 파일 업로드 — 작성한 엑셀 파일을 업로드하면 자동으로 설비가 등록됩니다.
  6. +
+
+
+ +
+

Tip: 설비코드 규칙

+

설비코드는 한번 등록하면 변경할 수 없습니다. 회사의 설비코드 체계에 맞춰 등록하세요. 예: EQ-PR-001 (설비-생산-001)

+
+
+
+ + {{-- 2-2. 일상점검표 --}} +
+

+ + 일상점검표 +

+
+
+

일상점검표는 설비별 그리드(표) 형태로 구성됩니다. 행은 날짜, 열은 점검 항목입니다.

+
    +
  • 점검 기록 — 각 셀을 클릭하면 양호(O), 불량(X), 해당없음(-) 등을 선택합니다.
  • +
  • 월별 필터 — 상단 월 선택으로 해당 월의 점검 현황만 조회합니다.
  • +
  • 설비 선택 — 드롭다운에서 설비를 선택하면 해당 설비의 점검표가 표시됩니다.
  • +
  • 항목 관리 — 점검 항목은 설비별로 독립적으로 설정할 수 있습니다.
  • +
+
+ +
+

Tip: 점검 빈도

+

ISO 9001에서 요구하는 일상점검은 매일 작업 시작 전에 수행하는 것이 원칙입니다. SAM에서는 날짜별로 자동 기록되므로 누락 여부를 쉽게 확인할 수 있습니다.

+
+
+
+ + {{-- 2-3. 수리이력 --}} +
+

+ + 수리이력 +

+
+
+

설비 고장 발생 시 수리 내역을 기록하고 추적합니다.

+
    +
  • 수리일 — 수리를 수행한 날짜
  • +
  • 고장 내용 — 어떤 고장이 발생했는지 상세 기술
  • +
  • 수리 내용 — 어떻게 수리했는지 조치 내역
  • +
  • 보전구분 — 사내보전(자체 인력) 또는 외주보전(협력업체)
  • +
  • 수리 비용 — 부품비, 인건비, 외주비 등 수리에 소요된 비용
  • +
  • 설비 선택 — 수리 대상 설비를 선택하면 해당 설비의 이력에 자동 연결됩니다.
  • +
+
+ +
+

수리이력 활용

+

수리이력은 설비 상세 페이지에서 설비별 수리 이력 탭으로 자동 연결됩니다. 심사관이 특정 설비의 수리 내역을 요청하면 즉시 조회할 수 있습니다.

+
+
+
+ + {{-- 2-4. 대시보드 --}} +
+

+ + 대시보드 +

+
+

설비관리 대시보드는 다음 통계 지표를 제공합니다:

+
+
    +
  • 총 설비 수 — 등록된 전체 설비 수량
  • +
  • 설비유형별 분포 — 생산/검사/유틸리티 등 비율
  • +
+
    +
  • 월간 점검 현황 — 이번 달 점검 완료율
  • +
  • 최근 수리 내역 — 최근 5건의 수리 기록
  • +
+
+
+
+
+
+ + {{-- ============================================================ --}} + {{-- 섹션 3: 품질인정심사 대응 --}} + {{-- ============================================================ --}} +
+
+

+ 3 + 품질인정심사 대응 +

+ + {{-- 3-1. ISO 9001 요구사항 --}} +
+

+ + ISO 9001 설비관리 요구사항 +

+
+

ISO 9001:2015 7.1.3항 (인프라)7.1.5항 (모니터링 및 측정 자원)에서 설비관리를 요구합니다:

+
    +
  • 설비 대장 — 제조에 사용되는 모든 설비의 목록 및 상태 관리
  • +
  • 예방보전 계획 — 고장을 사전에 방지하기 위한 정기 점검 계획 수립
  • +
  • 점검 기록 — 일상/정기 점검 결과의 문서화된 기록
  • +
  • 수리/보수 이력 — 고장 발생 및 조치 내역의 추적 가능한 기록
  • +
  • 교정 관리 — 측정 장비의 정기적 교정 및 교정 성적서 보관
  • +
+

IATF 16949(자동차 산업)는 이에 더해 TPM 활동, OEE 관리, 예비 부품 관리를 추가로 요구합니다.

+
+
+ + {{-- 3-2. SAM 자동 생성 증빙 --}} +
+

+ + SAM이 자동으로 생성하는 증빙 자료 +

+
+

SAM 설비관리를 사용하면 다음 증빙이 자동으로 관리됩니다:

+
+
+
설비 등록대장 (목록+상세)
+
일상점검 기록표
+
수리/보수 이력대장
+
+
+
설비별 사진 증빙
+
설비유형별 통계 현황
+
수리 비용 추적 데이터
+
+
+
+
+ + {{-- 3-3. 전산화 vs 수기 비교 --}} +
+

+ + 전산화 vs 수기 관리 비교 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
항목수기 방식SAM 전산화
설비대장 관리엑셀/종이 → 분실 위험, 버전 혼동DB 영구보관 + 자동 백업
점검 기록체크시트 수기 작성 → 판독 어려움클릭 한 번으로 기록, 즉시 조회
수리이력별도 파일 관리 → 연결성 없음설비별 자동 연결, 이력 추적
심사 준비 시간서류 찾느라 수일~수주 소요즉시 조회, 클릭 한 번으로 출력
사진 증빙별도 폴더 관리 → 설비와 연결 안됨설비에 직접 첨부, 자동 연결
데이터 분석수동 집계 → 오류 가능성 높음대시보드 자동 통계, 실시간 현황
+
+
+
+
+ + {{-- ============================================================ --}} + {{-- 섹션 4: 설비 보전 기초 지식 --}} + {{-- ============================================================ --}} +
+
+

+ 4 + 설비 보전 기초 지식 +

+ + {{-- 4-1. 보전 유형 비교 --}} +
+

+ + 보전 유형 비교 +

+
+ + {{-- BM (사후보전) --}} + + BM (사후보전) + 고장 발생 후 수리 + 비용 높음 / 손실 큼 + 비계획 정지 발생 + + {{-- Arrow BM→PM --}} + + 진화 + + {{-- PM (예방보전) --}} + + PM (예방보전) + 정기 점검/교체 + 계획적 보전 수행 + 비계획 정지 감소 + + {{-- Arrow PM→PdM --}} + + 진화 + + {{-- PdM (예지보전) --}} + + PdM (예지보전) + 데이터 기반 예측 + 최적 시점에 보전 + 비용 최소화 + + {{-- 상단 레이블 --}} + Level 1 + Level 2 + Level 3 + + {{-- SAM 위치 표시 --}} + + SAM: PM 레벨 지원 + + + + + + + +
+

SAM 설비관리는 PM(예방보전) 레벨을 지원하며, 축적된 데이터를 기반으로 PdM 전환을 준비할 수 있습니다.

+
+ + {{-- 4-2. OEE 공식 --}} +
+

+ + OEE (설비종합효율) 공식 +

+
+
+

OEE = 가동률 x 성능효율 x 양품률

+
+
+
+

가동률 (Availability)

+

실제 가동시간 / 계획 가동시간

+

설비가 실제로 돌아간 비율

+
+
+

성능효율 (Performance)

+

이론 사이클타임 x 생산량 / 가동시간

+

정상 속도로 돌아간 비율

+
+
+

양품률 (Quality)

+

양품 수 / 총 생산량

+

불량 없이 생산한 비율

+
+
+
+

세계적 수준: OEE 85% 이상 | 일반 제조업: 60~75% | 개선 필요: 60% 미만

+
+
+
+ + {{-- 4-3. 고장 분석 기법 --}} +
+

+ + 고장 분석 기법 +

+
+ {{-- Why-Why 분석 --}} +
+

Why-Why 분석 (5 Whys)

+
+

"왜?"를 5번 반복하여 고장의 근본 원인을 찾는 기법입니다.

+
+

현상: 모터가 과열된다

+

Why 1: 왜 과열되는가? → 냉각팬이 작동하지 않는다

+

Why 2: 왜 작동하지 않는가? → 팬 벨트가 끊어졌다

+

Why 3: 왜 끊어졌는가? → 벨트가 마모되었다

+

Why 4: 왜 마모되었는가? → 교체 주기를 넘겼다

+

Why 5: 왜 넘겼는가? → 예방보전 계획이 없었다 (근본 원인)

+
+

→ SAM 일상점검표로 벨트 마모 상태를 정기적으로 확인하면 예방 가능합니다.

+
+
+ + {{-- 파레토 분석 --}} +
+

파레토 분석 (80/20 법칙)

+
+

고장 원인을 빈도순으로 정렬하면, 상위 20%의 원인이 80%의 고장을 유발한다는 법칙입니다.

+
    +
  • SAM 수리이력 데이터를 축적하면 고장 유형별 빈도를 분석할 수 있습니다.
  • +
  • 빈도가 높은 고장 원인부터 집중적으로 개선하면 효율적으로 고장률을 줄일 수 있습니다.
  • +
  • 품질 심사에서도 "데이터 기반 개선 활동"의 증빙으로 활용됩니다.
  • +
+
+
+ + {{-- MTBF/MTTR --}} +
+

핵심 지표: MTBF & MTTR

+
+
+

MTBF (평균 고장 간격) = 총 가동시간 / 고장 횟수

+

값이 클수록 설비 신뢰성이 높음

+
+
+

MTTR (평균 수리 시간) = 총 수리시간 / 고장 횟수

+

값이 작을수록 보전 역량이 높음

+
+
+
+
+
+
+
+ + {{-- ============================================================ --}} + {{-- 섹션 5: 자주 묻는 질문 (FAQ) --}} + {{-- ============================================================ --}} +
+
+

+ 5 + 자주 묻는 질문 (FAQ) +

+ +
+ {{-- FAQ 1 --}} +
+ + Q. 설비코드는 어떤 체계로 만들어야 하나요? + + +
+

A. 회사 내부 규정에 따르되, 일반적인 체계는 다음과 같습니다:

+
    +
  • EQ-PR-001 — 설비(EQ) + 생산(PR) + 일련번호(001)
  • +
  • EQ-IS-001 — 설비(EQ) + 검사(IS) + 일련번호(001)
  • +
  • EQ-UT-001 — 설비(EQ) + 유틸리티(UT) + 일련번호(001)
  • +
+

설비코드는 한번 등록하면 변경할 수 없으므로 신중하게 결정하세요.

+
+
+ + {{-- FAQ 2 --}} +
+ + Q. 설비 사진은 몇 장까지 등록할 수 있나요? + + +
+

A. 설비 1건당 사진 수에는 제한이 없습니다. 다만 개별 파일 크기는 10MB 이하를 권장합니다. 설비 전면, 측면, 명판 등 심사에 필요한 사진을 모두 등록하세요.

+
+
+ + {{-- FAQ 3 --}} +
+ + Q. 엑셀 Import 시 설비코드가 중복되면 어떻게 되나요? + + +
+

A. 이미 등록된 설비코드와 동일한 코드가 엑셀에 포함되어 있으면 해당 행은 건너뛰기(skip) 처리됩니다. Import 완료 후 결과 요약에서 건너뛴 항목을 확인할 수 있습니다.

+
+
+ + {{-- FAQ 4 --}} +
+ + Q. 이미 기록한 점검 데이터를 수정할 수 있나요? + + +
+

A. 네, 점검 그리드에서 해당 셀을 다시 클릭하면 값을 변경할 수 있습니다. 단, 수정 이력이 기록되므로 심사 시 투명성이 유지됩니다.

+
+
+ + {{-- FAQ 5 --}} +
+ + Q. 삭제한 설비를 복구할 수 있나요? + + +
+

A. SAM에서는 설비를 완전 삭제하지 않고 비활성화(소프트 삭제) 처리합니다. 비활성화된 설비는 목록에서 숨겨지지만 데이터는 보존되어, 관리자가 복구할 수 있습니다.

+
+
+ + {{-- FAQ 6 --}} +
+ + Q. 수리이력에서 보전구분(사내/외주)은 왜 구분하나요? + + +
+

A. 보전구분은 비용 분석과 보전 역량 평가에 필요합니다:

+
    +
  • 사내보전 — 자체 기술 인력이 수리. 인건비만 발생하며 즉시 대응 가능
  • +
  • 외주보전 — 외부 협력업체에 의뢰. 전문성은 높지만 비용과 시간이 더 소요
  • +
+

품질 심사에서도 자체 보전 역량과 외주 관리 체계를 확인합니다.

+
+
+ + {{-- FAQ 7 --}} +
+ + Q. 설비 담당자를 변경하려면 어떻게 하나요? + + +
+

A. 설비 상세 페이지에서 "수정" 버튼을 클릭한 뒤, 담당자 항목을 변경하고 저장하면 됩니다. 변경 이력이 자동으로 기록됩니다.

+
+
+ + {{-- FAQ 8 --}} +
+ + Q. 점검 항목을 설비마다 다르게 설정할 수 있나요? + + +
+

A. 네, 점검 항목은 설비별로 독립적으로 관리됩니다. 설비 특성에 맞는 점검 항목(온도 확인, 소음 점검, 오일 상태 등)을 각각 설정할 수 있습니다.

+
+
+ + {{-- FAQ 9 --}} +
+ + Q. 대시보드 통계는 실시간으로 업데이트되나요? + + +
+

A. 네, 대시보드에 접속할 때마다 최신 데이터를 기반으로 통계가 계산됩니다. 설비 등록, 점검 기록, 수리이력을 입력하면 즉시 대시보드에 반영됩니다.

+
+
+ + {{-- FAQ 10 --}} +
+ + Q. 설비관리 데이터를 엑셀로 내보낼 수 있나요? + + +
+

A. 설비 목록 페이지에서 엑셀 다운로드 기능을 제공합니다. 등록된 전체 설비 정보를 엑셀 파일로 내보내어 보고서 작성이나 심사 자료로 활용할 수 있습니다.

+
+
+
+ + {{-- 핵심 정리 --}} +
+

핵심 정리

+

+ SAM 설비관리는 설비 등록 → 일상점검 → 수리이력 → 통계/증빙의 일관된 흐름으로 운영됩니다. + 모든 데이터는 설비별로 자동 연결되어 품질인정심사 시 즉시 조회 가능한 증빙 자료가 됩니다. + 기존 수기 관리 대비 데이터 유실 방지, 심사 준비 시간 단축, 이력 추적성 확보가 핵심 이점입니다. +

+
+
+
+ +
+
+
+ +{{-- 클릭 라이트박스 --}} + + + +@include('components.academy-glossary', ['domain' => 'equipment']) +@endsection diff --git a/routes/web.php b/routes/web.php index 04a9fc6d..e3a2c4ea 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1592,6 +1592,24 @@ Route::delete('/history', [\App\Http\Controllers\Video\TutorialVideoController::class, 'destroy'])->name('destroy'); }); +/* +|-------------------------------------------------------------------------- +| 설비관리 (Equipment Management) +|-------------------------------------------------------------------------- +*/ +Route::prefix('equipment')->name('equipment.')->middleware(['auth', 'hq.member', 'password.changed'])->group(function () { + Route::get('/', [\App\Http\Controllers\EquipmentController::class, 'dashboard'])->name('dashboard'); + Route::get('/registry', [\App\Http\Controllers\EquipmentController::class, 'index'])->name('index'); + Route::get('/registry/create', [\App\Http\Controllers\EquipmentController::class, 'create'])->name('create'); + Route::get('/registry/{id}', [\App\Http\Controllers\EquipmentController::class, 'show'])->whereNumber('id')->name('show'); + Route::get('/registry/{id}/edit', [\App\Http\Controllers\EquipmentController::class, 'edit'])->whereNumber('id')->name('edit'); + Route::get('/inspections', [\App\Http\Controllers\EquipmentController::class, 'inspections'])->name('inspections'); + Route::get('/repairs', [\App\Http\Controllers\EquipmentController::class, 'repairs'])->name('repairs'); + Route::get('/repairs/create', [\App\Http\Controllers\EquipmentController::class, 'repairCreate'])->name('repairs.create'); + Route::get('/import', [\App\Http\Controllers\EquipmentController::class, 'import'])->name('import'); + Route::get('/guide', [\App\Http\Controllers\EquipmentController::class, 'guide'])->name('guide'); +}); + /* |-------------------------------------------------------------------------- | SAM E-Sign Public Routes (인증 불필요 - 서명자용)