feat(tksafety): 위험성평가 모듈 Phase 1 구현 — DB·API·Excel·프론트엔드

5개 테이블(risk_projects/processes/items/mitigations/templates) + 마스터 시딩,
프로젝트·항목·감소대책 CRUD API, ExcelJS 평가표 내보내기,
프로젝트 목록·평가 수행 페이지, 사진 업로드(multer), 네비게이션·CSS 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-15 08:05:19 +09:00
parent fe5f7cd155
commit e9b69ed87b
19 changed files with 1792 additions and 9 deletions

View File

@@ -5,8 +5,10 @@ const dailyVisitRoutes = require('./routes/dailyVisitRoutes');
const educationRoutes = require('./routes/educationRoutes');
const visitRequestRoutes = require('./routes/visitRequestRoutes');
const checklistRoutes = require('./routes/checklistRoutes');
const riskRoutes = require('./routes/riskRoutes');
const dailyVisitModel = require('./models/dailyVisitModel');
const visitRequestModel = require('./models/visitRequestModel');
const riskModel = require('./models/riskModel');
const { requireAuth } = require('./middleware/auth');
const app = express();
@@ -42,6 +44,7 @@ app.use('/api/daily-visits', dailyVisitRoutes);
app.use('/api/education', educationRoutes);
app.use('/api/visit-requests', visitRequestRoutes);
app.use('/api/checklist', checklistRoutes);
app.use('/api/risk', riskRoutes);
// Partner search (autocomplete)
app.get('/api/partners/search', requireAuth, async (req, res) => {
@@ -89,6 +92,7 @@ app.listen(PORT, async () => {
// DB 마이그레이션 실행
try {
await visitRequestModel.runMigration();
await riskModel.runMigration();
} catch (err) {
console.error('Migration error:', err.message);
}