feat: 캘린더 기반 작업 현황 확인 시스템 구현
- 월별 캘린더 UI로 작업 현황을 한눈에 확인 가능 - 미입력(빨강), 부분입력(주황), 확인필요(보라), 이상없음(초록) 상태 표시 - 범례 아이콘(●)을 사용한 직관적인 상태 표시 - 날짜 클릭 시 해당일 작업자별 상세 현황 모달 - 작업자 클릭 시 개별 작업 입력/수정 모달 - 휴가 처리 기능 (연차, 반차, 반반차, 조퇴) - 월별 집계 데이터 최적화로 API 호출 최소화 백엔드: - monthly_worker_status, monthly_summary 테이블 추가 - 자동 집계 stored procedure 및 trigger 구현 - 확인필요(12시간 초과) 상태 감지 로직 - 출석 관리 시스템 확장 프론트엔드: - 캘린더 그리드 UI 구현 - 상태별 색상 및 아이콘 표시 - 모달 기반 상세 정보 표시 - 반응형 디자인 적용
This commit is contained in:
@@ -117,6 +117,11 @@ app.get('/api/ping', (req, res) => {
|
||||
});
|
||||
});
|
||||
|
||||
// ✅ 개발용 DB 설정 엔드포인트 (임시 비활성화)
|
||||
// app.post('/api/setup-attendance-db', async (req, res) => {
|
||||
// // DB 설정 로직 임시 비활성화
|
||||
// });
|
||||
|
||||
// ✅ 서버 상태 엔드포인트
|
||||
app.get('/api/status', (req, res) => {
|
||||
console.log('📊 Status 요청 받음!');
|
||||
@@ -277,6 +282,9 @@ app.use('/api/auth/check-password-strength', loginLimiter);
|
||||
// 나머지 인증 라우트
|
||||
app.use('/api/auth', authRoutes);
|
||||
|
||||
// 🔧 DB 설정 라우트 (개발용 - 인증 없이 접근 가능)
|
||||
app.use('/api/setup', require('./routes/setupRoutes'));
|
||||
|
||||
// 🔒 일반 API 속도 제한 적용
|
||||
app.use('/api/', apiLimiter);
|
||||
|
||||
@@ -291,7 +299,14 @@ app.use('/api/*', (req, res, next) => {
|
||||
'/api/auth/check-password-strength',
|
||||
'/api/health',
|
||||
'/api/ping', // 개발용 핑
|
||||
'/api/status' // 서버 상태
|
||||
'/api/status', // 서버 상태
|
||||
'/api/setup/setup-attendance-db',
|
||||
'/api/setup/setup-monthly-status', // DB 설정 (개발용)
|
||||
'/api/setup/add-overtime-warning', // 12시간 초과 상태 추가 (개발용)
|
||||
'/api/setup/migrate-existing-data', // 기존 데이터 마이그레이션 (개발용)
|
||||
'/api/setup/check-data-status', // DB 상태 확인 (개발용)
|
||||
'/api/monthly-status/calendar', // 월별 집계 테스트용
|
||||
'/api/monthly-status/daily-details' // 일별 상세 테스트용
|
||||
];
|
||||
|
||||
// 정확한 경로 매칭 확인
|
||||
@@ -327,6 +342,8 @@ app.use('/api/daily-work-reports', dailyWorkReportRoutes);
|
||||
app.use('/api/work-analysis', workAnalysisRoutes);
|
||||
app.use('/api/analysis', analysisRoutes); // 새로운 분석 라우트 등록
|
||||
app.use('/api/daily-work-reports-analysis', require('./routes/workReportAnalysisRoutes')); // 데일리 워크 레포트 분석 라우트
|
||||
app.use('/api/attendance', require('./routes/attendanceRoutes')); // 근태 관리 라우트
|
||||
app.use('/api/monthly-status', require('./routes/monthlyStatusRoutes')); // 월별 상태 집계 라우트
|
||||
|
||||
// 📊 리포트 및 분석
|
||||
app.use('/api/workreports', workReportRoutes);
|
||||
|
||||
Reference in New Issue
Block a user