feat: 일일순회점검 시스템 구축 및 관리 기능 개선
- 일일순회점검 시스템 신규 구현 - DB 테이블: patrol_checklist_items, daily_patrol_sessions, patrol_check_records, workplace_items, item_types - API: /api/patrol/* 엔드포인트 - 프론트엔드: 지도 기반 작업장 점검 UI - 설비 관리 기능 개선 - 구매 관련 필드 추가 (구매일, 가격, 공급업체 등) - 설비 코드 자동 생성 (TKP-XXX 형식) - 작업장 관리 개선 - 레이아웃 이미지 업로드 기능 - 마커 위치 저장 기능 - 부서 관리 기능 추가 - 사이드바 네비게이션 카테고리 재구성 - 이미지 401 오류 수정 (정적 파일 경로 처리) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
73
api.hyungi.net/routes/patrolRoutes.js
Normal file
73
api.hyungi.net/routes/patrolRoutes.js
Normal file
@@ -0,0 +1,73 @@
|
||||
// patrolRoutes.js
|
||||
// 일일순회점검 시스템 라우트
|
||||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const patrolController = require('../controllers/patrolController');
|
||||
|
||||
// ==================== 순회점검 세션 ====================
|
||||
|
||||
// 세션 목록 조회
|
||||
// GET /patrol/sessions?patrol_date=2026-02-04&patrol_time=morning&category_id=1
|
||||
router.get('/sessions', patrolController.getSessions);
|
||||
|
||||
// 세션 시작/조회 (POST로 생성하거나 기존 세션 반환)
|
||||
// POST /patrol/sessions { patrol_date, patrol_time, category_id }
|
||||
router.post('/sessions', patrolController.getOrCreateSession);
|
||||
|
||||
// 세션 상세 조회
|
||||
router.get('/sessions/:sessionId', patrolController.getSession);
|
||||
|
||||
// 세션 완료
|
||||
router.patch('/sessions/:sessionId/complete', patrolController.completeSession);
|
||||
|
||||
// 세션 메모 업데이트
|
||||
router.patch('/sessions/:sessionId/notes', patrolController.updateSessionNotes);
|
||||
|
||||
// 세션별 작업장 점검 현황
|
||||
router.get('/sessions/:sessionId/workplace-status', patrolController.getWorkplaceCheckStatus);
|
||||
|
||||
// ==================== 체크리스트 항목 ====================
|
||||
|
||||
// 체크리스트 항목 조회 (필터링 가능)
|
||||
// GET /patrol/checklist?category_id=1&workplace_id=2
|
||||
router.get('/checklist', patrolController.getChecklistItems);
|
||||
|
||||
// 체크리스트 항목 CRUD
|
||||
router.post('/checklist', patrolController.createChecklistItem);
|
||||
router.put('/checklist/:itemId', patrolController.updateChecklistItem);
|
||||
router.delete('/checklist/:itemId', patrolController.deleteChecklistItem);
|
||||
|
||||
// ==================== 체크 기록 ====================
|
||||
|
||||
// 세션별 체크 기록 조회
|
||||
// GET /patrol/sessions/:sessionId/records?workplace_id=1
|
||||
router.get('/sessions/:sessionId/records', patrolController.getCheckRecords);
|
||||
|
||||
// 체크 기록 저장 (단건)
|
||||
router.post('/sessions/:sessionId/records', patrolController.saveCheckRecord);
|
||||
|
||||
// 체크 기록 일괄 저장
|
||||
router.post('/sessions/:sessionId/records/batch', patrolController.saveCheckRecords);
|
||||
|
||||
// ==================== 작업장 물품 현황 ====================
|
||||
|
||||
// 작업장별 물품 조회
|
||||
router.get('/workplaces/:workplaceId/items', patrolController.getWorkplaceItems);
|
||||
|
||||
// 물품 CRUD
|
||||
router.post('/workplaces/:workplaceId/items', patrolController.createWorkplaceItem);
|
||||
router.put('/items/:itemId', patrolController.updateWorkplaceItem);
|
||||
router.delete('/items/:itemId', patrolController.deleteWorkplaceItem);
|
||||
|
||||
// ==================== 물품 유형 ====================
|
||||
|
||||
// 물품 유형 목록
|
||||
router.get('/item-types', patrolController.getItemTypes);
|
||||
|
||||
// ==================== 대시보드/통계 ====================
|
||||
|
||||
// 오늘 순회점검 현황
|
||||
router.get('/today-status', patrolController.getTodayStatus);
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user